5

我正在使用以下代码实现代码以仅显示用户安装的应用程序(如 facebook)和一些更新的系统应用程序(如 Gmail、youtube 等)。但它也显示了其他一些应用程序。所以我的问题是删除这些类型的应用程序的方法是什么。

我的最终目标是像 Google Play Store 一样显示应用列表。

我已阅读这些解决方案: 获取已安装的 android 应用程序列表

https://stacktips.com/tutorials/android/how-to-get-list-of-installed-apps-in-android

http://theopentutorials.com/tutorials/android/listview/how-to-get-list-of-installed-apps-in-android/

https://www.android-examples.com/get-list-installed-apps-package-name-icons/

https://inducesmile.com/android/android-list-installed-apps-in-device-programmatically/

packageManager = getPackageManager();

List<PackageInfo> packageInfoList = packageManager.getInstalledPackages(PackageManager.GET_PERMISSIONS);
List<PackageInfo> installedPackageInfo = new ArrayList<PackageInfo>();

for(PackageInfo pi: packageInfoList){
    if(!isSystemPackage(pi)){
          installedPackageInfo.add(pi);
    }
}
boolean isSystemPackage(PackageInfo pkgInfo){
        if((pkgInfo.applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP)!=0)
            return false;
        else if((pkgInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)!=0)
            return true;
        else if((pkgInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED)!=0)
            return false;
        else
            return true;

    }

更新:我添加了显示一些不相关应用程序的图像。

在此处输入图像描述 在此处输入图像描述

4

0 回答 0