我正在执行以下操作来获取应用程序列表,我只获得已安装的应用程序但不包括所有应用程序,包括系统应用程序。
我尝试过以下方法:
packageList1 = getPackageManager().getInstalledPackages(PackageManager.GET_META_DATA);
还有这个:
packageList1 = getPackageManager().getInstalledPackages(0);
对于这两种情况,我都得到了我在手机上安装的相同应用列表。
您已经通过调用以下方式获取所有已安装应用程序的列表,包括系统应用程序:
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
}
}
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
}
}