<использует-разрешение>
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Примечание. В некоторых случаях разрешения, которые вы запрашиваете через <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
- см. также:
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[null,null,["Последнее обновление: 2025-07-29 UTC."],[],[],null,["# <uses-permission\u003e\n\n**Note:** In some cases, the permissions that you request\nthrough `\u003cuses-permission\u003e` can affect how Google Play filters your\napplication. If you request a hardware-related permission, such as\n`CAMERA`, Google Play assumes that your\napplication requires the underlying hardware feature and filters the application\nfrom devices that don't offer it.\n\nTo control filtering, always explicitly declare\nhardware features in `\u003cuses-feature\u003e` elements, rather than\nrelying on Google Play to \"discover\" the requirements in\n`\u003cuses-permission\u003e` elements. Then, if you want to disable\nfiltering for a particular feature, you can add a\n`android:required=\"false\"` attribute to the\n`\u003cuses-feature\u003e` declaration.\n\nFor a list of permissions that imply\nhardware features, see the documentation for the [`\u003cuses-feature\u003e`](/guide/topics/manifest/uses-feature-element#permissions-features) element.\n\nsyntax:\n:\n\n ```xml\n \u003cuses-permission android:name=\"string\"\n android:maxSdkVersion=\"integer\" /\u003e\n ```\n\ncontained in:\n: [\u003cmanifest\u003e](/guide/topics/manifest/manifest-element)\n\ndescription:\n\n: Specifies a system permission that the user must grant for the app to operate correctly. The user grants permissions when the application installs, on devices running Android 5.1 and lower, or while the app runs, on devices running Android 6.0 and higher.\u003cbr /\u003e\n\n\n For more information on permissions, see the\n [Permissions](/guide/topics/manifest/manifest-intro#perms)\n section in the app manifest overview and the\n [Permissions on Android](/guide/topics/permissions) guide.\n A list of permissions defined by the base platform is at\n [android.Manifest.permission](/reference/android/Manifest.permission).\n\nattributes:\n:\n\n `android:name`\n : The name of the permission. It can be a permission defined by the\n application with the [\u003cpermission\u003e](/guide/topics/manifest/permission-element)\n element, a permission defined by another application, or one of the\n standard system permissions, such as\n [\"android.permission.CAMERA\"](/reference/android/Manifest.permission#CAMERA)\n or [\"android.permission.READ_CONTACTS\"](/reference/android/Manifest.permission#READ_CONTACTS). As these examples show,\n a permission name typically includes the package name as a prefix.\n\n `android:maxSdkVersion`\n\n : The highest API level at which this permission is granted to your app. Setting this attribute is useful if the permission your app requires is no longer needed beginning at a certain API level.\u003cbr /\u003e\n\n For example, beginning with Android 4.4 (API level 19) it's no longer necessary for your app\n to request the [WRITE_EXTERNAL_STORAGE](/reference/android/Manifest.permission#WRITE_EXTERNAL_STORAGE)\n permission to write to its own application-specific directories on external storage, which are\n provided by [getExternalFilesDir()](/reference/android/content/Context#getExternalFilesDir(java.lang.String)).\n\n However,\n the permission *is required* for API level 18 and lower. So you can declare that this\n permission is needed only up to API level 18 with a declaration like the following: \n\n ```xml\n \u003cuses-permission\n android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"\n android:maxSdkVersion=\"18\" /\u003e\n ```\n\n This way, beginning with API level 19, the system no longer grants your app the\n `WRITE_EXTERNAL_STORAGE` permission.\n\n Added in API level 19.\n\nintroduced in:\n: API level 1\n\nsee also:\n:\n - [\u003cpermission\u003e](/guide/topics/manifest/permission-element)\n - [`\u003cuses-permission-sdk-23\u003e`](/guide/topics/manifest/uses-permission-sdk-23-element)\n - [\u003cuses-feature\u003e](/guide/topics/manifest/uses-feature-element)"]]