我正在尝试检索应用程序中已安装应用程序的列表,例如android应用程序抽屉(按字母顺序显示应用程序列表)
我正在从列表中 的应用程序中删除 系统应用程序 ,但是这样做 删除基本应用 ,例如 计算器,YouTube 等。 但是,如果我 不过滤掉系统应用程序 ,则无用的系统应用程序,例如 Backup,Corner_display,蓝牙 等。是我不想放在抽屉中的 。
这是代码
final PackageManager packageManager = getPackageManager();
final List<PackageInfo> myInstalledPackagesList = packageManager.getInstalledPackages(0);
/*Excluding system applications*/
final List<PackageInfo> myInstalledPackagesListNonSystemApps = new ArrayList<>();
for(PackageInfo myInstalledPackagesListElement : myInstalledPackagesList){
if( !isSystemPackage(myInstalledPackagesListElement)){
myInstalledPackagesListNonSystemApps.add(myInstalledPackagesListElement);
}
}
这是我编写的用于检查应用程序是否为系统应用程序的代码,以便稍后从列表中将其删除。
private boolean isSystemPackage(PackageInfo packageInfo) {
ApplicationInfo applicationInfo = packageInfo.applicationInfo;
return ((applicationInfo.flags & applicationInfo.FLAG_SYSTEM) != 0);
}
myInstalledPackagesListNonSystemApps 是我最终使用的列表
预期结果:
所有用户安装的应用程序列表
+重要的系统应用(YouTube,计算器,联系人等)
-(其他系统应用程序)
任何帮助将不胜感激。谢谢!