如何在Android中分配权限组名称

时间:2014-01-24 07:54:06

标签: android android-permissions

这是我的清单文件的一部分:

<permission-group
    android:name="groupPerm"
    android:description="@string/perm_get_desc"
    android:icon="@drawable/ic_launcher"
    android:label="@string/perm_label" />

<permission
    android:name="bla.bla.GET_PHOTOS"
    android:description="@string/perm_get_desc"
    android:label="Access photos"
    android:permissionGroup="groupPerm"
    android:protectionLevel="dangerous" />
<permission
    android:name="bla.bla.DELETE_PHOTOS"
    android:description="@string/perm_delete_desc"
    android:label="Delete photos"
    android:permissionGroup="groupPerm"
    android:protectionLevel="dangerous" />

这不会给我任何错误。但是,当我在应用程序管理器中找到此应用程序并转到权限时,两个自定义权限显示在组Default中,而不是上面刚刚声明的组。有谁看到我做错了什么?

1 个答案:

答案 0 :(得分:1)

所以这是我自己的问题的解决方案。

<permission-group
    android:name="bla.bla.groupPerm"
    android:description="@string/perm_get_desc"
    android:icon="@drawable/ic_launcher"
    android:label="@string/perm_label" />

<permission
    android:name="bla.bla.GET_PHOTOS"
    android:description="@string/perm_get_desc"
    android:label="Access photos"
    android:permissionGroup="bla.bla.groupPerm"
    android:protectionLevel="dangerous" />
<permission
    android:name="bla.bla.DELETE_PHOTOS"
    android:description="@string/perm_delete_desc"
    android:label="Delete photos"
    android:permissionGroup="bla.bla.groupPerm"
    android:protectionLevel="dangerous" />

显然,权限组名称也应该包含包名称,而不仅仅是权限名称,如我之前的示例中所示:groupPerm。即,正确的名称应该是:bla.bla.groupPerm,其中bla.bla是命名空间。如果您不这样做,权限将显示在默认组下,并将列出:bla.bla.DELETE_PHOTOS和bla.bla.GET_PHOTOS。