Les permissions
Permissions normales et dangereuses, déclaration dans le manifeste, demande à l'exécution, justification, refus répétés, moindre privilège, et l'équivalent iOS : savoir quoi déclarer, quand demander et quoi faire d'un refus.
- 22 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- Comprendre
Quelques cartes du deck
Permission normale : de quoi s'agit-il ?
Voir la réponse
Autorisation à faible risque pour la vie privée, accordée à l'application dès l'installation, sans rien demander à l'utilisateur.
INTERNETetVIBRATEen sont deux exemples : il suffit de les déclarer dans le manifeste.Une application déclare ces trois permissions. Laquelle faudra-t-il aussi demander à l'utilisateur pendant l'exécution ?
```xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />`RECORD_AUDIOINTERNETVIBRATE- Aucune : le manifeste suffit pour les trois
Voir la réponse
RECORD_AUDIOLe micro donne accès à une donnée privée : c'est une permission dangereuse. Internet et la vibration sont normales, accordées à l'installation.
Sous Android, une permission dangereuse se déclare dans le … et se demande aussi à l'….
Voir la réponse
Sous Android, une permission dangereuse se déclare dans le manifeste et se demande aussi à l'exécution.
La déclaration dit au système ce que l'application pourrait demander ; la demande à l'exécution recueille l'accord de l'utilisateur. L'une sans l'autre ne suffit pas.
Permission dangereuse : de quoi s'agit-il ?
Voir la réponse
Autorisation qui ouvre l'accès à des données privées ou à un matériel sensible (caméra, micro, position, contacts) et que l'utilisateur doit accorder lui-même.
Depuis Android 6.0, elle se déclare dans le manifeste et se demande aussi pendant l'exécution ; sans accord, l'appel échoue.
L'application plante avec « java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission. », alors que le manifeste déclare bien cette permission. Quelle est la cause ?
- Le manifeste doit la déclarer une seconde fois pour le fournisseur réseau
- Il manque la permission
INTERNET, car la position passe par le réseau - Le téléphone n'a pas de GPS, donc le système refuse l'accès à la position
- La permission, dangereuse, n'a jamais été demandée à l'utilisateur à l'exécution
Voir la réponse
La permission, dangereuse, n'a jamais été demandée à l'utilisateur à l'exécution
Déclarer ne suffit pas pour une permission dangereuse : sans accord de l'utilisateur, l'appel à la position lève l'exception. On vérifie avec
checkSelfPermission, puis on demande.