如何获取已安装的应用程序权限

时间:2011-10-29 08:32:05

标签: android permissions

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

我希望根据安装的所有应用程序使用的权限来开发它。请告诉我如何识别其他应用程序使用的权限

2 个答案:

答案 0 :(得分:24)

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

  
      
  • 获取所有已安装的应用程序
  •   
  • 迭代应用程序
  •   
  • 获取每个应用程序权限列表
  •   
  • 迭代每个权限
  •   
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();
   }
}

答案 1 :(得分:0)

您可以使用此REST API获取有关应用的详细信息,包括应用所需的权限。例如,要查看WhatsApp要求的权限,请找到&#34;权限&#34;此GET请求的响应中的节点: http://playstore-api.herokuapp.com/playstore/apps/com.whatsapp

有关如何为此进行API调用的更多说明,请参见GitHub page