【问题标题】:How to get manifest permissions of any installed Android app如何获取任何已安装的 Android 应用程序的清单权限
【发布时间】:2010-12-08 11:16:59
【问题描述】:

是否可以获得任何已安装的 Android 应用程序的清单权限?

【问题讨论】:

  • 你想要它们以编程方式吗?
  • 为什么需要其他应用权限?我怎么知道供应商应用权限?这样我就可以在我的清单文件中定义以访问那里的数据

标签: android permissions manifest


【解决方案1】:

感谢您的提示,让它运行:

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List pkgAppsList = getPackageManager().queryIntentActivities(mainIntent, 0);

for (Object obj : pkgAppsList) {
  ResolveInfo resolveInfo = (ResolveInfo) obj;
  PackageInfo packageInfo = null;
  try {
    packageInfo = getPackageManager().getPackageInfo(resolveInfo.activityInfo.packageName, PackageManager.GET_PERMISSIONS);
  } catch (NameNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }

  String[] requestedPermissions = packageInfo.requestedPermissions;
}

【讨论】:

    【解决方案2】:

    使用这个获取已安装的包。

    final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    final List pkgAppsList = context.getPackageManager().queryIntentActivities( mainIntent, 0);
    

    并使用包名获取信息。

    http://developer.android.com/reference/android/content/pm/PackageInfo.html

    【讨论】:

      【解决方案3】:

      如果你有 apk 文件,这很简单,只需从开始菜单打开 cmd 并编写以下命令行:

      aapt d permissions D:\dina\app-debug.apk 
      

      注意您编写的路径,然后您可以从该应用程序中的所有权限中获取列表,并且包名称也如下所示:

      package: com.example.dinasaif.facebookintegration
      uses-permission: android.permission.INTERNET
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-04
        • 2014-02-24
        • 2015-05-20
        • 2011-10-13
        • 2021-07-15
        • 1970-01-01
        相关资源
        最近更新 更多