Примечание. В некоторых случаях разрешения, которые вы запрашиваете через <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
- см. также: