如何通过权限搜索applicationinfo?

时间:2015-03-29 14:12:47

标签: android android-manifest android-applicationinfo

我想显示安装在用户设备上的应用程序列表,这些应用程序目前在其清单文件上具有Internet权限我通过使用此代码获取所有这些应用程序:

PackageManager packageManager = mainActivity.getPackageManager();
            apps = packageManager.getInstalledApplications(0);
            Collections.sort(apps, new ApplicationInfo.DisplayNameComparator(packageManager));

1 个答案:

答案 0 :(得分:3)

而不是getInstalledApplications(),使用getInstalledPackages()GET_PERMISSIONS中的flags。对于那些请求权限的包,生成的PackageInfo对象将填充permissions字段。 permissionsPermissionInfo[]PermissionInfo有一个name字段,您可以查看该字段是否符合您所需的权限。这样的事情应该有效:

for (PackageInfo pkg : mgr.getInstalledPackages(PackageManager.GET_PERMISSIONS)) {
  for (PermissionInfo perm : pkg.permissions) { 
    if (Manifest.permission.INTERNET.equals(perm.name)) {
      // do something
    }
  }
}