【问题标题】:How can I get a list of apps installed, but not including system apps? [duplicate]如何获取已安装的应用程序列表,但不包括系统应用程序? [复制]
【发布时间】:2012-11-05 06:49:06
【问题描述】:

可能重复:
How do I check if an app is a non-system app in Android?

目前,此代码返回所有内容,包括 Android 系统和时钟等系统应用程序。

public List<ApplicationInfo> getApps() {
        final PackageManager pm = context.getPackageManager();
        List<ApplicationInfo> packages = pm
                .getInstalledApplications(PackageManager.GET_META_DATA);
        return packages;
    }

如何区分这些应用和用户安装的应用?

【问题讨论】:

标签: android


【解决方案1】:

您好,您可以使用下面的代码

 for(ApplicationInfo app : apps) {
        //checks for flags; if flagged, check if updated system app
        if((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 1) {
            installedApps.add(app);
        //it's a system app, not interested
        } else if ((app.flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
            //Discard this one
        //in this case, it should be a user-installed app
        } else {
            installedApps.add(app);
        }
    }

【讨论】:

  • 效果很好!谢谢你...
  • 'FLAG_UPDATED_SYSTEM_APP' @Talha 是什么意思
猜你喜欢
  • 2014-06-29
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 2018-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多