Remarque : Dans certains cas, les autorisations que vous demandez via <uses-permission> peuvent affecter le filtrage de votre application par Google Play.

Si vous demandez une autorisation liée au matériel (par exemple, 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. Les autorisations sont accordées par l'utilisateur lorsque l'application est installée (sur les appareils équipés d'Android version 5.1 ou antérieure) ou pendant son exécution (sur les appareils équipés d'Android version 6.0 ou supérieure).

Pour en savoir plus sur les autorisations, consultez la section Autorisations dans l'introduction et le guide d'API concernant les autorisations système distinct. La 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 (par exemple, "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 doit être 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 requise 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 de cette manière :

<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.

Cet attribut a été ajouté au niveau d'API 19.

première apparition :
Niveau d'API 1
voir aussi :