1 /** 2 * 得到有Internet访问权限的应用 3 * @return 4 */ 5 public List<TrafficInfo> getInternetTrafficInfos(){ 6 List<TrafficInfo> trafficInofs = new ArrayList<TrafficInfo>(); 7 List<PackageInfo> packageInfos = pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_PERMISSIONS); 8 for (PackageInfo info : packageInfos) { 9 String[] permissions = info.requestedPermissions; // 获取所有的权限节点 10 // 有的应用程序没有权限 需要判断是否为null 11 if(permissions != null){ 12 for(String permission:permissions){ 13 if(permission.equals(Manifest.permission.INTERNET)){ 14 ApplicationInfo appInfo = info.applicationInfo; 15 Drawable appicon = appInfo.loadIcon(pm); 16 String appname = appInfo.loadLabel(pm).toString(); 17 String packageName = appInfo.packageName; 18 int uid = appInfo.uid; 19 trafficInofs.add(new TrafficInfo(appicon, appname, packageName, uid)); 20 } 21 } 22 } 23 24 } 25 return trafficInofs; 26 }