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.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation
  5. 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.

    INTERNET et VIBRATE en 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_AUDIO
    • INTERNET
    • VIBRATE
    • Aucune : le manifeste suffit pour les trois
    Voir la réponse

    RECORD_AUDIO

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