繁体   English   中英

Android:如何获取使用Internet访问的已安装应用程序列表-PackageManager

[英]Android : How to get the List of Installed apps that use Internet Access - PackageManager

我想知道是否有可能,我们通过以下方式获得已安装应用程序的列表:

    PackageManager pm = AppList.this.getPackageManager();
        Intent intent = new Intent( Intent.ACTION_MAIN, null);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
    List   list = pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED);


        for ( ResolveInfo rInfo : list)
    {
            results.add(rInfo.activityInfo.applicationInfo.loadLabel(pm));


        } 

我们可以对使用Internet访问工作的应用进行排序或过滤吗?

欢迎您检索与应用程序相对应的PackageInfo ,然后检查其requestedPermissions数组以查看是否有INTERNET权限。

此功能将检查活动是否具有互联网权限以及是否授予该权限。 您必须对服务进行相应的修改。

boolean checkIfUsesInet(ResloveInfo rInfo) {
  boolean result = false;
  try {
    PackageInfo packageInfo = getPackageManager().getPackageInfo(rInfo.activityInfo.packageName, PackageManager.GET_PERMISSIONS);
    for(int i=0; i < packageInfo.requestedPermissions.length; i++) {
      String permission = packageInfo.requestedPermission[i];
      int permissionFlag = packageInfo.requestedPermissionFlags[i];
      if(Manifest.permission.INTERNET.equals(permission) && (permissionFlag & PackageInfo.REQUESTED_PERMISSION_GRANTED) != 0)
        result = true;
    }
  } catch (NameNotFoundException e) {
    e.printStackTrace();
  }
  return result;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM