Android 编程下如何获取有 Internet 访问权限的应用
应用程序在运行过程中所需要的权限是被写在应用的 AndroidManifest.xml 下的,在 Android 中这些信息是被封装在 PackageInfo 中的,所以要获取权限的信息,我们就需要先获取到 PackageManager ,再通过 PackageManager 获取指定条件的 PackageInfo 信息,通过比对 PackageInfo 所携带的权限信息来判断对应的应用是否具有 Internet 的权限,判断应用是否具有其他权限同理。实现代码如下:
public void getInternetAppInfos() { /************************ 获取包管理器 *************************/ PackageManager manager = getPackageManager(); /** 获取未被卸载同时在清单文件中设置了 <uses-permission> 的包信息 **/ List<PackageInfo> packageInfos = manager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_PERMISSIONS); /****** 遍历获取包信息及包信息中包含的 <uses-permission> 信息 *****/ for (PackageInfo info : packageInfos) { String[] permissions = info.requestedPermissions; if (permissions != null) { for (String permission : permissions) { if (permission.equals(Manifest.permission.INTERNET)) { ApplicationInfo appInfo = info.applicationInfo; String appname = appInfo.loadLabel(manager).toString(); String packageName = appInfo.packageName; int uid = appInfo.uid; System.out.println(appname + ":" + packageName + ":" + uid); } } } } }
专注移动互联网产品设计研发 分享最新的移动互联网产品和技术