获取android中具有Internet权限的应用程序列表

时间:2015-05-08 19:15:42

标签: android android-permissions

我想列出具有互联网访问权限的应用程序。 我有这个例子

PackageManager p = context.getPackageManager(); 
final List<PackageInfo> apps = p.getInstalledPackages(PackageManager.GET_PERMISSIONS);
for (PackageInfo pkg : apps) {
for (String permission : pkg.requestedPermissions) {
    // Check if permission is the internet permission
}
}

但是我没有得到这个,这段代码将如何检查互联网权限?

有人可以举出完整的例子???

谢谢。

2 个答案:

答案 0 :(得分:3)

此示例使用需要互联网权限的应用的所有包名称填充packageNames

ArrayList<String> packageNames = new ArrayList<String>();

PackageManager p = getPackageManager();
final List<PackageInfo> apps = p.getInstalledPackages(PackageManager.GET_PERMISSIONS);
for (PackageInfo packageInfo : apps) {

    if (packageInfo.requestedPermissions == null)
        continue;

    for (String permission : packageInfo.requestedPermissions) {

        if (TextUtils.equals(permission, android.Manifest.permission.INTERNET)) {
            packageNames.add(packageInfo.packageName);
            break;
        }
    }
}

答案 1 :(得分:2)

  

此代码如何检查互联网权限?

选中permission以查看它是否为所需值:

PackageManager p = context.getPackageManager(); 
final List<PackageInfo> apps = p.getInstalledPackages(PackageManager.GET_PERMISSIONS);

for (PackageInfo pkg : apps) {
    for (String permission : pkg.requestedPermissions) {
        if (Manifest.permission.INTERNET.equals(permission)) {
            // do something
            break;
        }
    }
}