Android中对已安装应用的管理实现
获取、管理手机中已安装的所有应用信息
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中对已安装应用的管理实现相关推荐
- Android之共享已安装的apk应用
http://blog.csdn.net/xanxus46/article/details/8228366 是否遇到过自己手机上有好的应用,但不知道怎么分享给好友的时候呢?作为一名程序员,遇到了这样简 ...
- 如何获取Vim中所有已安装颜色方案的列表?
有没有办法获得Vim中所有已安装颜色方案的列表? 这样可以很容易地选择一个而不查看.vim目录. #1楼 您可以在/usr/share/vim/vimNN/colors下看到颜色方案列表( NN是版本 ...
- linux重启kvm服务命令,linux中kvm的安装及快照管理
一.kvm的安装及状态查看 1.安装软件 yum -y install kvm virt-manager libvirt 2.启动libvirtd 报错,升级device-mapper-libs yu ...
- android_ android apk analyzer(libchecker apk分析器):分析Android手机上已安装的app(库/基础组件分析/开发技术)/从酷安市场下载安装包
android apk analyzer(libchecker apk分析器):分析Android手机上已安装的app(库/基础组件分析/开发技术-) download app(apk) Releas ...
- python换中包_在Linux中替换已安装的python包中的源代码
我真的是Linux系统的新手,目前正在Oracle VM VirtualBox上使用Ubuntu linux操作. 我对使用python及其软件包有一些疑问. 已经安装了python以及一个pytho ...
- Android获取设备已安装的应用
2019独角兽企业重金招聘Python工程师标准>>> 项目中, 我们经常要用到显示系统已安装的应用, 可以通过两种方式获取已安装的应用, 一种是通过ApplicationInfo, ...
- android 获取已安装应用的安装包,Android获取设备已安装的应用
项目中, 我们经常要用到显示系统已安装的应用, 可以通过两种方式获取已安装的应用, 一种是通过ApplicationInfo, 一种是通过ResolveInfo. 这里用的是ResolveInfo, ...
- python已安装这个产品的另一个版本_电脑安装会声会影过程中提示已安装这个产品的另一个版本怎么解决...
最近有用户在电脑中安装会声会影x7的过程中出现提示,"已安装这个产品的另一个版本,这个版本的安装无法继续".通过分析可以得知,应该是之前卸载会声会影的操作不当导致卸载不完全.如 ...
- Linux 中查看已安装的磁盘驱动器清单技巧
如果系统中安装了多个磁盘驱动器,且需要执行某些操作(比如重新分区),那么需要首先获取磁盘信息.而要获取磁盘驱动的信息,需要查看已安装的磁盘驱动的列表,这个列表就包含已安装的驱动器的许多信息. 查看已安 ...
最新文章
- 玩转Vuejs--核心原理
- 信息与计算机科学好学吗,计算机科学与技术好学吗?
- linux生成数字命令,Linux下随机生成密码的命令
- 朗文3000词汇表带音标_英语零基础音标语法都不会词汇量3000 学雅思到6/6.5分 需要多久 该如何做?...
- python正则表达式面试_Python面试 Re-正则表达式
- 使用deploy命令上传jar到私有仓库
- 2016 - 2 - 20 ARC知识总结(二 autorelease概念及实现)
- sendfile实现文件服务器,sendfile
- 对DNN的一些高层架构设想
- Hexo多客户端同步问题
- Python字符串splitlines()
- YTU 2553: 谁是赢家
- python3 模块详细解释_详解Python3中的contextvars模块
- Github 插件之 Octotree 报错介绍与解决
- win10专业版无法安装更新解决方法
- maven 添加外部jar包到本地仓库
- JAVA学习——Lambda表达式是干什么用的?
- 向量检索(一)Faiss 在工业界的应用和常见问题解决
- 【苹果CMS技术教程】苹果CMSV10宝塔全自动定时采集教程
- CS61A Lab 8