Что такое <группа разрешений> в android?

Из документации android, ясно, что Используя "группу разрешений", мы можем создать группу разрешений. Используя элемент "разрешение" в файле манифеста android, мы можем определить разрешение. Это разрешение можно добавить в группу разрешений.

если мы назовем эту группу разрешений как "com.example.permission-group" мы можем использовать его в другом приложении, используя "uses-permission". Если мы сможем использовать, можем ли мы получить доступ ко всем разрешениям этой группы.

Если приведенный выше случай неверен, тогда как мы можем использовать "группу разрешений"

Ответ 1

Группа разрешений тегов используется только для группировки одного или нескольких разрешений в определенной категории. С сайта разработчика 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.MESSAGES, чтобы иметь общий значок.

Из AndroidManifest.xml источника android 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" />

Здесь андроид .permission-group.MESSAGES категоризирует эти разрешения под общим значком и именем в разрешениях, когда ваши приложения используют эти разрешения.

Дайте

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

в примере приложения, чтобы увидеть результат. Эти два разрешения будут сгруппированы в общую категорию.

Note the Receive and send sms categorised into a group

Затраты на деньги обусловлены андроидом: permissionFlags = "costMoney" в разрешении SEND_SMS. Следовательно, группа разрешений используется только для категоризации разрешений. Он не может использоваться как для группировки одного или нескольких разрешений.

Ответ 2

Тег permission-group позволяет создать group пользовательских разрешений.

Объявляет имя для логической группировки связанных разрешений. Индивидуальное разрешение присоединяется к группе через атрибут permissionGroup элемента разрешения.

В принципе, вы можете упорядочить свои разрешения.

И группа разрешений определяет метку для набора разрешений (оба те, которые указаны в манифесте с элементами разрешения и теми объявлено в другом месте). Это влияет только на то, как сгруппированы разрешения при представлении пользователю. Элемент группы разрешений не указать, какие права принадлежат группе; он просто дает группе имя.

<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>