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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值