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 }