Android中如何正确的获得所有App列表

原创 2016年08月31日 11:45:43

我们经常会遇到这样的需求:列出手机中所有能打开的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;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

获取Android手机里所有已安装的APP

最近做一个功能时有这样一个需求,就是要扫描本地所有已安装的App,来判断是否安装了某个App,如果没有安装,点击按钮就下载,如果已经安装,点击按钮就打开该App。这个里面主要的功能就是获取当前安装的所...
  • lishuangling21
  • lishuangling21
  • 2016年03月03日 16:43
  • 9279

关于获取Android系统所有已安装App信息的一些操作(详细)

转载请注明出处:http://blog.csdn.net/qinjuning                 本节内容是如何获取Android系统中应用程序的信息,主要包括packagen...
  • RuingMan
  • RuingMan
  • 2016年05月08日 20:58
  • 12057

获取手机所有应用程序的信息

在对手机软件进行管理的时候,我们常常需要知道手机软件的一些基本信息,如应用程序的类型、位置、uid等等,才好作出相应的操作。 以下是获取手机所有安装软件的关键代码: /** * 应用程序信息的实...
  • cy524563
  • cy524563
  • 2014年12月02日 16:54
  • 1687

[Android][App不显示在最近使用过的应用程序列表中]

  • 2017年06月21日 18:00
  • 2.07MB
  • 下载

正确设置了charles,使用charles抓包某些app,无法抓到的原因(Android手机)

Charles配置绝对正确,还是使终抓不到包的可能的一种情况是!!!-----应用使用的网络库不支持代理,所有的网络请求没有走代理,而是走的正常wifi直连...
  • SCHOLAR_II
  • SCHOLAR_II
  • 2017年06月14日 17:42
  • 3669

Android5.0以上app进程保活的正确姿势

有图有真相, 使用有情怀的锤子手机验证杀掉进程后能自启, 我设置的时间间隔为500ms(仅仅是为了测试)。                                             ...
  • brycegao321
  • brycegao321
  • 2016年08月25日 10:48
  • 10659

Android app如何正确读写系统sys设备节点

Android app如何正确读写系统sys设备节点版权声明:本文为博主原创文章,允许转载,但请保留出处。Android 设备节点Android基于Linux内核。设备节点文件是设备驱动的逻辑文件,可...
  • u014341735
  • u014341735
  • 2016年04月25日 18:15
  • 5523

Android app系统设置界面 数据的保存与读取 SharedPreferences 的正确使用

很开心的是经历过两个多月的努力,项目在11月份即将要交付使用,基础功能已经完成,剩下的是系统设定界面没有开发完毕,如下图:        很显然要实现的功能是几个界面要显示很多数据,要依据某...
  • omayyouhappy
  • omayyouhappy
  • 2015年09月24日 13:55
  • 5035

Android开发过程遇到的安装好的APP打开程序崩溃,或者安装后应用列表里没有的问题及解决方案

在最近的android'开发过程中遇到了一些小小的麻烦(studio和eclipse都出现),资深开发师不会讲但新手小白又解决不了,经过各种查资料和实践, 我发现大部分这类问题都出现在配置权限上。 ...
  • lim_roid
  • lim_roid
  • 2015年11月05日 17:16
  • 1932

Android例子—Fragment实例讲解—新闻(购物)类App列表Fragment的简单实现

本节引言: 相信大家对点击列表,然后进入详情这种App并不陌生吧,在购物类App和新闻类App中最为常见: 下面我们简单来讲一下流程逻辑! 1.逻辑流程讲解: 刚好公司测试妹子的测试机上装...
  • u012758088
  • u012758088
  • 2017年04月01日 16:48
  • 1222
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android中如何正确的获得所有App列表
举报原因:
原因补充:

(最多只允许输入30个字)