<использует-разрешение>

Примечание. В некоторых случаях разрешения, которые вы запрашиваете через <uses-permission> , могут повлиять на то, как Google Play фильтрует ваше приложение. Если вы запрашиваете разрешение, связанное с аппаратным обеспечением, например CAMERA , Google Play предполагает, что вашему приложению требуется базовая аппаратная функция, и отфильтровывает приложение от устройств, которые ее не предлагают.

Чтобы управлять фильтрацией, всегда явно объявляйте функции оборудования в элементах <uses-feature> , а не полагайтесь на то, что Google Play «обнаружит» требования в элементах <uses-permission> . Затем, если вы хотите отключить фильтрацию для определенной функции, вы можете добавить атрибут android:required="false" в объявление <uses-feature> .

Список разрешений, которые подразумевают аппаратные функции, см. в документации по элементу <uses-feature> .

синтаксис:
<uses-permission android:name="string"
        android:maxSdkVersion="integer" />
содержится в:
<manifest>
описание:
Указывает системное разрешение, которое пользователь должен предоставить для правильной работы приложения. Пользователь предоставляет разрешения при установке приложения на устройствах под управлением Android 5.1 и более ранних версий или во время работы приложения на устройствах под управлением Android 6.0 и более поздних версий.

Дополнительные сведения о разрешениях см. в разделе «Разрешения» в обзоре манифеста приложения и в руководстве «Разрешения для Android» . Список разрешений, определенных базовой платформой, находится в android.Manifest.permission .

атрибуты:
android:name
Название разрешения. Это может быть разрешение, определенное приложением с помощью элемента <permission> , разрешение, определенное другим приложением, или одно из стандартных системных разрешений, например "android.permission.CAMERA" или "android.permission.READ_CONTACTS" . Как показывают эти примеры, имя разрешения обычно включает в себя имя пакета в качестве префикса.
android:maxSdkVersion
Самый высокий уровень API, на котором это разрешение предоставляется вашему приложению. Установка этого атрибута полезна, если разрешение, требуемое вашему приложению, больше не требуется, начиная с определенного уровня API.

Например, начиная с Android 4.4 (уровень API 19), вашему приложению больше не требуется запрашивать разрешение WRITE_EXTERNAL_STORAGE для записи в свои собственные каталоги приложения на внешнем хранилище, которые предоставляются getExternalFilesDir() .

Однако разрешение требуется для уровня API 18 и ниже. Таким образом, вы можете объявить, что это разрешение необходимо только до уровня API 18, с помощью следующего объявления:

<uses-permission
     android:name="android.permission.WRITE_EXTERNAL_STORAGE"
     android:maxSdkVersion="18" />

Таким образом, начиная с уровня API 19, система больше не предоставляет вашему приложению разрешение WRITE_EXTERNAL_STORAGE .

Добавлено на уровне API 19.

представлено в:
API уровня 1
см. также:
,

Примечание. В некоторых случаях разрешения, которые вы запрашиваете через <uses-permission> , могут повлиять на то, как Google Play фильтрует ваше приложение. Если вы запрашиваете разрешение, связанное с аппаратным обеспечением, например CAMERA , Google Play предполагает, что вашему приложению требуется базовая аппаратная функция, и отфильтровывает приложение от устройств, которые ее не предлагают.

Чтобы управлять фильтрацией, всегда явно объявляйте функции оборудования в элементах <uses-feature> , а не полагайтесь на то, что Google Play «обнаружит» требования в элементах <uses-permission> . Затем, если вы хотите отключить фильтрацию для определенной функции, вы можете добавить атрибут android:required="false" в объявление <uses-feature> .

Список разрешений, которые подразумевают аппаратные функции, см. в документации по элементу <uses-feature> .

синтаксис:
<uses-permission android:name="string"
        android:maxSdkVersion="integer" />
содержится в:
<manifest>
описание:
Указывает системное разрешение, которое пользователь должен предоставить для правильной работы приложения. Пользователь предоставляет разрешения при установке приложения на устройствах под управлением Android 5.1 и более ранних версий или во время работы приложения на устройствах под управлением Android 6.0 и более поздних версий.

Дополнительные сведения о разрешениях см. в разделе «Разрешения» в обзоре манифеста приложения и в руководстве «Разрешения для Android» . Список разрешений, определенных базовой платформой, находится в android.Manifest.permission .

атрибуты:
android:name
Название разрешения. Это может быть разрешение, определенное приложением с помощью элемента <permission> , разрешение, определенное другим приложением, или одно из стандартных системных разрешений, например "android.permission.CAMERA" или "android.permission.READ_CONTACTS" . Как показывают эти примеры, имя разрешения обычно включает в себя имя пакета в качестве префикса.
android:maxSdkVersion
Самый высокий уровень API, на котором это разрешение предоставляется вашему приложению. Установка этого атрибута полезна, если разрешение, требуемое вашему приложению, больше не требуется, начиная с определенного уровня API.

Например, начиная с Android 4.4 (уровень API 19), вашему приложению больше не требуется запрашивать разрешение WRITE_EXTERNAL_STORAGE для записи в свои собственные каталоги приложения на внешнем хранилище, которые предоставляются getExternalFilesDir() .

Однако разрешение требуется для уровня API 18 и ниже. Таким образом, вы можете объявить, что это разрешение необходимо только до уровня API 18, с помощью следующего объявления:

<uses-permission
     android:name="android.permission.WRITE_EXTERNAL_STORAGE"
     android:maxSdkVersion="18" />

Таким образом, начиная с уровня API 19, система больше не предоставляет вашему приложению разрешение WRITE_EXTERNAL_STORAGE .

Добавлено на уровне API 19.

представлено в:
API уровня 1
см. также: