获取、管理手机中已安装的所有应用信息

1、创建应用的实体类AppInfo,属性有应用的名称、包名、图标、第一次安装时间和版本名称

public class AppInfo {private String name ;//应用名称private String packageName ;//应用包名private Drawable icon ;//应用图标private long firstInstallTime ;//应用第一次安装的时间private String versionName ;//应用的版本名称public String getName() {return name;}public String getPackageName() {return packageName;}public Drawable getIcon() {return icon;}public long getFirstInstallTime() {return firstInstallTime;}public String getVersionName() {return versionName;}public AppInfo(String name, String packageName, Drawable icon, long firstInstallTime, String versionName) {this.name = name;this.packageName = packageName;this.icon = icon;this.firstInstallTime = firstInstallTime;this.versionName = versionName;}
}

View Code

2、获取所有应用信息的方法

public static List<AppInfo> getAppInfos(Context context){List<AppInfo> appInfoList = new ArrayList<>() ;//获取包管理器PackageManager pm = context.getPackageManager();//获取已安装的包信息List<PackageInfo> packageInfos = pm.getInstalledPackages(0);for(PackageInfo packageInfo : packageInfos){//获取包名String packageName = packageInfo.packageName;//获取应用图标Drawable icon = packageInfo.applicationInfo.loadIcon(pm);//获取应用的名称String name = packageInfo.applicationInfo.loadLabel(pm).toString();//获取第一次安装的时间long firstInstallTime = packageInfo.firstInstallTime;//获取版本号int versionCode = packageInfo.versionCode;//获取版本名称String versionName = packageInfo.versionName;AppInfo appInfo = new AppInfo(name,packageName,icon,firstInstallTime,versionName);appInfoList.add(appInfo);}return appInfoList ;}

View Code

3、打开应用方法

public static void openApplication(Context context,String packageName) {Intent intent=isexit(context,packageName);if(intent==null){System.out.println("APP not found!....:"+packageName);}context.startActivity(intent);}/*** 通过packagename判断应用是否安装* @param context** @return 跳转的应用主activity Intent* */public static Intent isexit(Context context,String pk_name){//获取包管理器PackageManager packageManager = context.getPackageManager();//通过包名获取IntentIntent it= packageManager.getLaunchIntentForPackage(pk_name);return it;}

View Code

4、进入应用详情页面

public static void showInstalledAppDetails(Context context, String packageName) {Intent intent = new Intent();final int apiLevel = Build.VERSION.SDK_INT;if (apiLevel >= 9) { // 2.3(ApiLevel 9)以上,使用SDK提供的接口
            intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);Uri uri = Uri.fromParts("package", packageName, null);intent.setData(uri);} else { // 2.3以下,使用非公开的接口(查看InstalledAppDetails源码)// 2.2和2.1中,InstalledAppDetails使用的APP_PKG_NAME不同。final String appPkgName = (apiLevel == 8 ? "pkg": "com.android.settings.ApplicationPkgName");intent.setAction(Intent.ACTION_VIEW);intent.setClassName("com.android.settings","com.android.settings.InstalledAppDetails");intent.putExtra(appPkgName, packageName);}context.startActivity(intent);}

View Code

5、卸载应用

public static void uninstallApplication(Context context,String packageName){Intent intent = new Intent() ;intent.setAction("android.intent.action.DELETE");intent.addCategory("android.intent.category.DEFAULT");intent.setData(Uri.parse("package:"+packageName));context.startActivity(intent);}

View Code

转载于:https://www.cnblogs.com/happy-warmth/p/10526705.html

Android中对已安装应用的管理实现相关推荐

  1. Android之共享已安装的apk应用

    http://blog.csdn.net/xanxus46/article/details/8228366 是否遇到过自己手机上有好的应用,但不知道怎么分享给好友的时候呢?作为一名程序员,遇到了这样简 ...

  2. 如何获取Vim中所有已安装颜色方案的列表?

    有没有办法获得Vim中所有已安装颜色方案的列表? 这样可以很容易地选择一个而不查看.vim目录. #1楼 您可以在/usr/share/vim/vimNN/colors下看到颜色方案列表( NN是版本 ...

  3. linux重启kvm服务命令,linux中kvm的安装及快照管理

    一.kvm的安装及状态查看 1.安装软件 yum -y install kvm virt-manager libvirt 2.启动libvirtd 报错,升级device-mapper-libs yu ...

  4. android_ android apk analyzer(libchecker apk分析器):分析Android手机上已安装的app(库/基础组件分析/开发技术)/从酷安市场下载安装包

    android apk analyzer(libchecker apk分析器):分析Android手机上已安装的app(库/基础组件分析/开发技术-) download app(apk) Releas ...

  5. python换中包_在Linux中替换已安装的python包中的源代码

    我真的是Linux系统的新手,目前正在Oracle VM VirtualBox上使用Ubuntu linux操作. 我对使用python及其软件包有一些疑问. 已经安装了python以及一个pytho ...

  6. Android获取设备已安装的应用

    2019独角兽企业重金招聘Python工程师标准>>> 项目中, 我们经常要用到显示系统已安装的应用, 可以通过两种方式获取已安装的应用, 一种是通过ApplicationInfo, ...

  7. android 获取已安装应用的安装包,Android获取设备已安装的应用

    项目中, 我们经常要用到显示系统已安装的应用, 可以通过两种方式获取已安装的应用, 一种是通过ApplicationInfo, 一种是通过ResolveInfo. 这里用的是ResolveInfo, ...

  8. python已安装这个产品的另一个版本_电脑安装会声会影过程中提示已安装这个产品的另一个版本怎么解决...

    ‍ 最近有用户在电脑中安装会声会影x7的过程中出现提示,"已安装这个产品的另一个版本,这个版本的安装无法继续".通过分析可以得知,应该是之前卸载会声会影的操作不当导致卸载不完全.如 ...

  9. Linux 中查看已安装的磁盘驱动器清单技巧

    如果系统中安装了多个磁盘驱动器,且需要执行某些操作(比如重新分区),那么需要首先获取磁盘信息.而要获取磁盘驱动的信息,需要查看已安装的磁盘驱动的列表,这个列表就包含已安装的驱动器的许多信息. 查看已安 ...

最新文章

  1. 玩转Vuejs--核心原理
  2. 信息与计算机科学好学吗,计算机科学与技术好学吗?
  3. linux生成数字命令,Linux下随机生成密码的命令
  4. 朗文3000词汇表带音标_英语零基础音标语法都不会词汇量3000 学雅思到6/6.5分 需要多久 该如何做?...
  5. python正则表达式面试_Python面试 Re-正则表达式
  6. 使用deploy命令上传jar到私有仓库
  7. 2016 - 2 - 20 ARC知识总结(二 autorelease概念及实现)
  8. sendfile实现文件服务器,sendfile
  9. 对DNN的一些高层架构设想
  10. Hexo多客户端同步问题
  11. Python字符串splitlines()
  12. YTU 2553: 谁是赢家
  13. python3 模块详细解释_详解Python3中的contextvars模块
  14. Github 插件之 Octotree 报错介绍与解决
  15. win10专业版无法安装更新解决方法
  16. maven 添加外部jar包到本地仓库
  17. JAVA学习——Lambda表达式是干什么用的?
  18. 向量检索(一)Faiss 在工业界的应用和常见问题解决
  19. 【苹果CMS技术教程】苹果CMSV10宝塔全自动定时采集教程
  20. CS61A Lab 8

热门文章

  1. 数据库高可用实战案例-------架构优化之清爽一夏
  2. Redis实战(七)
  3. hadoop集群服务重启后出错
  4. jQuery学习笔记--JqGrid相关操作 方法列表(上)
  5. 【博客话题】什么样的学生你都能教好——亲爱的魏老师
  6. ByteIOContext结构分析
  7. Discuz!NT 模板机制分析
  8. vue+axios中的get请求传参,post请求头(form/json)不一样的传参的处理
  9. 手把手教你玩转网络编程模型之完成例程(Completion Routine)篇(下)-转
  10. 蓝桥杯 ADV-169 算法提高 士兵排队问题