【发布时间】:2010-12-08 11:16:59
【问题描述】:
是否可以获得任何已安装的 Android 应用程序的清单权限?
【问题讨论】:
-
你想要它们以编程方式吗?
-
为什么需要其他应用权限?我怎么知道供应商应用权限?这样我就可以在我的清单文件中定义以访问那里的数据
标签: android permissions manifest
是否可以获得任何已安装的 Android 应用程序的清单权限?
【问题讨论】:
标签: android permissions manifest
感谢您的提示,让它运行:
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;
}
【讨论】:
使用这个获取已安装的包。
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
【讨论】:
如果你有 apk 文件,这很简单,只需从开始菜单打开 cmd 并编写以下命令行:
aapt d permissions D:\dina\app-debug.apk
注意您编写的路径,然后您可以从该应用程序中的所有权限中获取列表,并且包名称也如下所示:
package: com.example.dinasaif.facebookintegration
uses-permission: android.permission.INTERNET
【讨论】: