<uses-permission>

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 nécessaire 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 :