获取Android中具有互联网权限的应用程序列表

问题描述:

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

I want to list of application which have internet access permission. I have this example

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
}
}

但是我没有得到,此代码将如何检查互联网许可?

but i am not getting this, how this code will check for internet permission?

有人可以举一个完整的例子吗?

can someone give full example???

谢谢.

此示例用需要互联网许可的应用程序的所有程序包名称填充packageNames:

This example fills packageNames with all the package name of the apps that require the internet permission:

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;
        }
    }
}