private List<AppICON> queryFilterAppInfo() { PackageManager pm = this.getPackageManager(); // 查询所有已经安装的应用程序 List<ApplicationInfo> appInfos = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);// GET_UNINSTALLED_PACKAGES代表已删除,但还有安装目录的 // 创建一个类别为CATEGORY_LAUNCHER的该包名的Intent Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null); resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER); List<AppICON> applicationInfos = new ArrayList<>(); //AppICON 是我自己写的实体类 你们自己随意 // 通过getPackageManager()的queryIntentActivities方法遍历,得到所有能打开的app的packageName List<ResolveInfo> resolveinfoList = getPackageManager() .queryIntentActivities(resolveIntent, 0); Set<String> allowPackages = new HashSet(); for (ResolveInfo resolveInfo : resolveinfoList) { allowPackages.add(resolveInfo.activityInfo.packageName); } for (ApplicationInfo app : appInfos) { if (allowPackages.contains(app.packageName)) { AppICON appICON = new AppICON(); appICON.setIcon(app.loadIcon(pm)); appICON.setPname(app.packageName); appICON.setApp_name(app.loadLabel(pm).toString()); applicationInfos.add(appICON); } } return applicationInfos; }
android 查询所有已安装的应用程序
最新推荐文章于 2023-03-02 08:00:21 发布