仅获取列表中已安装的应用程序(非系统应用程序)

时间:2019-08-08 15:45:57

标签: android installed-applications package-info

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

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

我已阅读以下解决方案: Get list of installed android applications

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;

    }

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

enter image description here enter image description here

0 个答案:

没有答案