我正在执行以下操作来获取应用列表,我只获得已安装但未包含所有应用的应用,包括系统应用。
我尝试了以下内容:
packageList1 = getPackageManager().getInstalledPackages(PackageManager.GET_META_DATA);
和此:
packageList1 = getPackageManager().getInstalledPackages(0);
对于这两种情况,我都得到了我在手机上安装的相同应用列表。
答案 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
}
}