使用Android中的packageManager从已安装的应用程序的检索列表中丢失重要的应用程序

时间:2019-01-25 15:22:06

标签: android android-studio android-package-managers

我正在尝试检索应用程序中已安装应用程序的列表,例如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);
                            }
                        }

这是我编写的用于检查应用程序是否为系统应用程序的代码,以便稍后从列表中将其删除。

  1. 如果应用程序是系统应用程序,则返回True
  2. 如果应用不是系统应用程序(用户安装),则其他返回False
private boolean isSystemPackage(PackageInfo packageInfo) {
         ApplicationInfo applicationInfo = packageInfo.applicationInfo;
        return ((applicationInfo.flags & applicationInfo.FLAG_SYSTEM) != 0);
    }

myInstalledPackagesListNonSystemApps 是我最终使用的列表

预期结果: 所有用户安装的应用程序列表
+重要的系统应用(YouTube,计算器,联系人等)                           -(其他系统应用程序)

任何帮助将不胜感激。谢谢!

0 个答案:

没有答案