Android中如何正确的获得所有App列表
来源:互联网 发布:python capitalize 编辑:程序博客网 时间:2024/05/18 19:18
我们经常会遇到这样的需求:列出手机中所有能打开的App。此时我们不需要列出那些无法打开的app,也就是没有Activity的。网上有一些方法,都是过滤系统app的方法,将短信、电话这些App都过滤掉了,其实只要使用下面代码就行了:
private void queryFilterAppInfo() { PackageManager pm = this.getPackageManager(); // 查询所有已经安装的应用程序 List<ApplicationInfo> appInfos= pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);// GET_UNINSTALLED_PACKAGES代表已删除,但还有安装目录的 List<ApplicationInfo> applicationInfos=new ArrayList<>(); // 创建一个类别为CATEGORY_LAUNCHER的该包名的Intent Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null); resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER); // 通过getPackageManager()的queryIntentActivities方法遍历,得到所有能打开的app的packageName List<ResolveInfo> resolveinfoList = getPackageManager() .queryIntentActivities(resolveIntent, 0); Set<String> allowPackages=new HashSet(); for (ResolveInfo resolveInfo:resolveinfoList){ allowPackages.add(resolveInfo.activityInfo.packageName); } for (ApplicationInfo app:appInfos) {// if((app.flags & ApplicationInfo.FLAG_SYSTEM) <= 0)//通过flag排除系统应用,会将电话、短信也排除掉// {// applicationInfos.add(app);// }// if(app.uid > 10000){//通过uid排除系统应用,在一些手机上效果不好// applicationInfos.add(app);// } if (allowPackages.contains(app.packageName)){ applicationInfos.add(app); } } mApplicationInfos=applicationInfos;}
0 0
- Android中如何正确的获得所有App列表
- android获得所有的安装app列表,并运行指定app
- python中如何正确的复制列表
- Android如何正确获得View的宽和高
- Android如何正确获得View的宽和高
- winform中如何获得窗体中所有的控件
- Android开发中如何获得正确的layout资源(layout-sw480dp layout-sw600dp-land layout-sw720dp-port)
- 获得所有的域用户列表
- Windws获得所有的端口列表
- Java中如何获得所有实现该接口的子类
- 如何获得Android手机的软件安装列表
- Android中如何获取加固后应用App的所有方法信息
- Android如何修改app不在多任务列表中显示
- CListBox如何正确删除列表中全部内容
- 如何获得正确的基数估计值
- Android中如何获得控件的尺寸
- android中获得所有安装的软件包信息
- 如何获得所有android应用程序UID
- HTML5之Canvas 2D入门1 - Canvas绘制文本和图像
- 使用HttpWebRequest用Post提交MultiPart数据
- iOS-RAC学习笔记(三)——RACSignal信号流改头换面的祖师Bind
- 头像点击放大 再点击时返回原来的位置 可以看看
- APP设计规范
- Android中如何正确的获得所有App列表
- 第十二届湖南省赛--三角形和矩形
- PHP中的post和get方法的使用
- iOS @2x 与@3x 图的详解
- 如何友好的展示Findbugs页面
- 享受技术带来的快乐
- mysql access denied 的解决方法
- 为什么我要用 Node.js? 案例逐一介绍
- iOS中画虚线的方法【项目中可能会用到】