<uses-permission>
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Remarque : Dans certains cas, les autorisations que vous demandez via <uses-permission>
peuvent affecter la façon dont Google Play filtre votre application. Si vous demandez une autorisation liée au matériel, telle que CAMERA
, Google Play suppose que votre application nécessite la fonctionnalité matérielle sous-jacente et la prend en compte pour filtrer les appareils qui ne la proposent pas.
Pour contrôler le filtrage, déclarez toujours les fonctionnalités matérielles de manière explicite dans les éléments <uses-feature>
au lieu de compter sur Google Play pour "découvrir" les exigences des éléments <uses-permission>
. Ensuite, si vous souhaitez désactiver le filtre d'une fonctionnalité en particulier, vous pouvez ajouter un attribut android:required="false"
à la déclaration <uses-feature>
.
Pour obtenir la liste des autorisations qui impliquent des fonctionnalités matérielles, consultez les documents concernant l'élément <uses-feature>
.
- syntaxe :
<uses-permission android:name="string"
android:maxSdkVersion="integer" />
- Contenu dans :
<manifest>
- Description :
- Précise une autorisation système que l'utilisateur doit accorder pour que l'application fonctionne correctement. L'utilisateur accorde des autorisations lorsque l'application est installée, sur des appareils équipés d'Android 5.1 ou version antérieure, ou pendant l'exécution de l'application, sur des appareils équipés d'Android 6.0 et versions ultérieures.
Pour en savoir plus sur ces autorisations, consultez la section Autorisations dans la présentation du fichier manifeste de l'application et dans le guide Autorisations sur Android.
Une liste des autorisations définies par la plate-forme de base est disponible sur android.Manifest.permission
.
- Attributs :
android:name
- Nom de l'autorisation. Il peut s'agir d'une autorisation définie par l'application avec l'élément
<permission>
, d'une autorisation définie par une autre application ou de l'une des autorisations système standards, telles que "android.permission.CAMERA"
ou "android.permission.READ_CONTACTS"
. Comme le montrent ces exemples, un nom d'autorisation inclut généralement le nom du package en préfixe.
android:maxSdkVersion
- Niveau d'API le plus élevé auquel cette autorisation est accordée à votre application. Cet attribut est utile si l'autorisation requise par votre application n'est plus nécessaire à partir d'un certain niveau d'API.
Par exemple, à partir d'Android 4.4 (niveau d'API 19), votre application n'a plus besoin de demander l'autorisation WRITE_EXTERNAL_STORAGE
lorsqu'elle souhaite écrire dans ses propres répertoires d'applications sur le stockage externe (les répertoires fournis par getExternalFilesDir()
).
Toutefois, l'autorisation reste obligatoire pour les niveaux d'API 18 et inférieurs. Vous pouvez donc déclarer que cette autorisation n'est requise que jusqu'au niveau d'API 18 avec une déclaration comme celle-ci :
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
Ainsi, à partir du niveau d'API 19, le système n'accordera plus l'autorisation WRITE_EXTERNAL_STORAGE
à votre application.
Attribut ajouté au niveau d'API 19.
- Première apparition :
- Niveau d'API 1
- Voir aussi :
-
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (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)"]]