我想显示安装在用户设备上的应用程序列表,这些应用程序目前在其清单文件上具有Internet权限我通过使用此代码获取所有这些应用程序:
PackageManager packageManager = mainActivity.getPackageManager();
apps = packageManager.getInstalledApplications(0);
Collections.sort(apps, new ApplicationInfo.DisplayNameComparator(packageManager));
答案 0 :(得分:3)
而不是getInstalledApplications()
,使用getInstalledPackages()
,GET_PERMISSIONS
中的flags
。对于那些请求权限的包,生成的PackageInfo
对象将填充permissions
字段。 permissions
为PermissionInfo[]
,PermissionInfo
有一个name
字段,您可以查看该字段是否符合您所需的权限。这样的事情应该有效:
for (PackageInfo pkg : mgr.getInstalledPackages(PackageManager.GET_PERMISSIONS)) {
for (PermissionInfo perm : pkg.permissions) {
if (Manifest.permission.INTERNET.equals(perm.name)) {
// do something
}
}
}