如何获得安装的应用程序的权限 [英] How to get installed applications permissions

查看:697
本文介绍了如何获得安装的应用程序的权限的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要开发一个Android应用程序,以检测恶意软件。

我要寻找的基础上使用已安装的所有应用程序的权限制定本。请让我知道如何识别其他应用程序使用的权限

解决方案

您可以得到这样的所有已安装的应用程序的权限。

  
      
  • 在获取所有已安装的应用程序
  •   
  • 遍历应用程序
  •   
  • 在获取每个应用程序的权限列表
  •   
  • 遍历每个权限
  •   

  PackageManager PM = getPackageManager();
名单< ApplicationInfo>包= pm.getInstalledApplications(PackageManager.GET_META_DATA);

对于(ApplicationInfo applicationInfo:包){
   Log.d(测试,应用程序:+ applicationInfo.name +套餐+ applicationInfo.packageName);

   尝试 {
      PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName,PackageManager.GET_PERMISSIONS);

      //获取权限
      的String [] requestedPermissions = packageInfo.requestedPermissions;

      如果(requestedPermissions!= NULL){
         的for(int i = 0; I< requestedPermissions.length;我++){
            Log.d(测试,requestedPermissions [I]);
         }
      }
   }赶上(的NameNotFoundException E){
      e.printStackTrace();
   }
}
 

I need to develop an android application to detect malwares.

I am looking to develop this based on permissions used by all the applications installed. Please let me know how to identify the permissions used by other applications

解决方案

You can get all installed applications permissions like this.

  • Get all installed applications
  • Iterate over the applications
  • Get each application permissions list
  • Iterate over the each permission

PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo applicationInfo : packages) {
   Log.d("test", "App: " + applicationInfo.name + " Package: " + applicationInfo.packageName);

   try {
      PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_PERMISSIONS);

      //Get Permissions
      String[] requestedPermissions = packageInfo.requestedPermissions;

      if(requestedPermissions != null) {
         for (int i = 0; i < requestedPermissions.length; i++) {
            Log.d("test", requestedPermissions[i]);
         }
      }
   } catch (NameNotFoundException e) {
      e.printStackTrace();
   }
}

这篇关于如何获得安装的应用程序的权限的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆