Sco*_*tus 25 android android-manifest
我正在尝试获取有效的Android权限列表.我知道http://developer.android.com/reference/android/Manifest.permission.html上的"官方"版本,但似乎还有更多.
例如
android.permission.READ_SETTINGS
android.permission.ACCESS_LOCATION
android.permission.ACCESS_GPS
com.android.vending.CHECK_LICENSE
com.android.browser.permission.READ_HISTORY_BOOKMARKS
com.android.browser.permission.WRITE_HISTORY_BOOKMARKS
com.google.android.googleapps.permission.GOOGLE_AUTH
com.google.android.googleapps.permission.GOOGLE_AUTH.OTHER_SERVICES
com.google.android.c2dm.permission.RECEIVE
Run Code Online (Sandbox Code Playgroud)
我在哪里可以得到这样的清单?我在哪里获得这些权限的说明?
小智 21
adb shell pm list permissions -s
这可能就是你要找的东西.
Cha*_*ins 14
对于所有权限,没有全面的"列表".任何想要强制执行自己的应用程序都可以定义新权限:https://developer.android.com/guide/topics/security/security.html#declaring.
本Manifest.permission类列出了"系统"的权限,你已经知道这些的.您列出的其他内容不是系统权限,而是特定于某些应用程序,或者是旧名称(例如,ACCESS_LOCATION和ACCESS_GPS是1.0之前的名称).
<permission android:name=源代码中的grep 会显示所有包含的应用程序权限(对于开源应用程序),但一般来说,您应该坚持使用文档化的权限名称.
小智 12
使用以下代码段获取您设备上声明的所有权限:
Context context = this;
PackageManager pm = context.getPackageManager();
CharSequence csPermissionGroupLabel;
CharSequence csPermissionLabel;
List<PermissionGroupInfo> lstGroups = pm.getAllPermissionGroups(0);
for (PermissionGroupInfo pgi : lstGroups) {
csPermissionGroupLabel = pgi.loadLabel(pm);
Log.e("perm", pgi.name + ": " + csPermissionGroupLabel.toString());
try {
List<PermissionInfo> lstPermissions = pm.queryPermissionsByGroup(pgi.name, 0);
for (PermissionInfo pi : lstPermissions) {
csPermissionLabel = pi.loadLabel(pm);
Log.e("perm", " " + pi.name + ": " + csPermissionLabel.toString());
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38007 次 |
| 最近记录: |