14

从android文档中可以看出,使用“permission-group”我们可以创建一个权限组。使用 android manifest 文件中的“permission”元素,我们可以定义一个权限。可以将此权限添加到权限组。

如果我们将此权限组命名为“com.example.permission-group”,我们是否可以使用“uses-permission”在另一个应用程序中使用它。如果可以使用,是否可以访问该组的所有权限。

如果上述情况是错误的,那我们如何使用“权限组”

4

2 回答 2

15

标签权限组仅用于将一个或多个权限分组到特定类别下。来自开发者的网站http://developer.android.com/guide/topics/manifest/permission-group-element.html

Declares a name for a logical grouping of related permissions. Individual 
permission join the group through the permissionGroup attribute of the
<permission> element. Members of a group are presented together in the 
user interface.

Note that this element does not declare a permission itself, only a category in 
which permissions can be placed. See the <permission> element for element for
information on declaring permissions and assigning them to groups.

例如,与消息相关的权限,比如 android.permission.SEND_SMS、RECEIVE_SMS 以及所有与消息相关的权限都归在 android.permission-group.MESSAGES 下,以便拥有一个通用图标。

来自android源码的AndroidManifest.xml https://github.com/android/platform_frameworks_base/blob/master/core/res/AndroidManifest.xml

 <permission-group android:name="android.permission-group.MESSAGES"
    android:label="@string/permgrouplab_messages"
    android:icon="@drawable/perm_group_messages"
    android:description="@string/permgroupdesc_messages"
    android:permissionGroupFlags="personalInfo"
    android:priority="360"/>

  <!-- Allows an application to monitor incoming SMS messages, to record
     or perform processing on them. -->
<permission android:name="android.permission.RECEIVE_SMS"
    android:permissionGroup="android.permission-group.MESSAGES"
    android:protectionLevel="dangerous"
    android:label="@string/permlab_receiveSms"
    android:description="@string/permdesc_receiveSms" />

<!-- Allows an application to send SMS messages. -->
<permission android:name="android.permission.SEND_SMS"
    android:permissionGroup="android.permission-group.MESSAGES"
    android:protectionLevel="dangerous"
    android:permissionFlags="costsMoney"
    android:label="@string/permlab_sendSms"
    android:description="@string/permdesc_sendSms" />

在这里,当您的应用程序使用这些权限时,android.permission-group.MESSAGES 将这些权限归类在一个通用图标和权限名称下。

<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />

在示例应用程序中查看结果。这两个权限将被归为一个共同的类别。

注意分类为一组的接收和发送短信

花费金钱是因为 SEND_SMS 权限中的 android:permissionFlags="costsMoney" 。因此权限组仅用于对权限进行分类。它不能用于对一个或多个权限进行分组。

于 2013-07-02T13:09:53.503 回答
5

permission-group标签允许您创建group自定义权限。

为相关权限的逻辑分组声明一个名称。个人权限通过permission 元素的permissionGroup 属性加入组。

它基本上允许您以有序的方式组织您的权限。

权限组为一组权限定义了一个标签(包括在清单中声明的​​权限元素和在其他地方声明的权限)。它仅影响权限在呈现给用户时的分组方式。permission-group 元素不指定哪些权限属于该组;它只是给组一个名字。

<manifest . . . >

<permission-group android:description="string resource"
              android:icon="drawable resource"
              android:label="string resource"
              android:name="SomeGroup" />

<permission android:description="string resource"
        android:icon="drawable resource"
        android:label="string resource"
        android:name="SomePermission"
        android:permissionGroup="SomeGroup"
        android:protectionLevel=["normal" | "dangerous" | 
                                 "signature" | "signatureOrSystem"] />

    <uses-permission android:name="SomePermission" />
    . . .
    <application . . .>
        <activity android:name="com.some.activity"
                  android:permission="SomePermission"
                  . . . >
            . . .
        </activity>
    </application>
</manifest>
于 2013-06-28T18:49:10.160 回答