如何获取所有应用程序(包括系统应用程序)的列表?

时间:2014-05-12 00:53:02

标签: android android-package-managers installed-applications

我正在执行以下操作来获取应用列表,我只获得已安装但未包含所有应用的应用,包括系统应用。

我尝试了以下内容:

    packageList1 = getPackageManager().getInstalledPackages(PackageManager.GET_META_DATA);

和此:

    packageList1 = getPackageManager().getInstalledPackages(0);

对于这两种情况,我都得到了我在手机上安装的相同应用列表。

2 个答案:

答案 0 :(得分:6)

您已经通过调用以下方式获取所有已安装应用程序的列表,包括系统应用程序:

List<ApplicationInfo> apps = getPackageManager().getInstalledPackages(0);

有旗帜的人:

  • ApplicationInfo.FLAG_UPDATED_SYSTEM_APP
  • ApplicationInfo.FLAG_SYSTEM

是系统应用。你可以检查这样的标志:

List<ApplicationInfo> apps = getPackageManager().getInstalledApplications(0);
for(ApplicationInfo app : apps) {
    if((app.flags & (ApplicationInfo.FLAG_UPDATED_SYSTEM_APP | ApplicationInfo.FLAG_SYSTEM)) > 0) {
        // It is a system app
    } else {
        // It is installed by the user
    }
}

答案 1 :(得分:0)

List<ApplicationInfo> apps = getPackageManager().getInstalledApplications(0);
for(ApplicationInfo app : apps) {
    if((app.flags & (ApplicationInfo.FLAG_UPDATED_SYSTEM_APP | ApplicationInfo.FLAG_SYSTEM)) > 0) {
        // It is a system app
    } else {
        // It is installed by the user
    }
}
相关问题