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

问题描述 投票:2回答:2

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

我尝试过以下方法:

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

还有这个:

    packageList1 = getPackageManager().getInstalledPackages(0);

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

android android-package-managers installed-applications
2个回答
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
    }
}

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
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.