2

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

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

1 回答 1

3

代替getInstalledApplications(), 使用getInstalledPackages(), 包括GET_PERMISSIONSflags. 对于那些请求权限的包,生成的PackageInfo对象将填写一个字段。将是, 并且有一个字段,您可以检查它是否与您所需的权限匹配。像这样的东西应该工作:permissionspermissionsPermissionInfo[]PermissionInfoname

for (PackageInfo pkg : mgr.getInstalledPackages(PackageManager.GET_PERMISSIONS)) {
  for (PermissionInfo perm : pkg.permissions) { 
    if (Manifest.permission.INTERNET.equals(perm.name)) {
      // do something
    }
  }
}
于 2015-03-29T14:18:59.157 回答