Chaque permission demandée par ton app a plus d'états que « autorisée » et « refusée ». L'utilisateur peut autoriser une seule fois, autoriser seulement pendant l'utilisation de l'app, refuser, refuser deux fois, révoquer plus tard dans les réglages, ou laisser le système la réinitialiser après une longue période d'inactivité. Chaque état a besoin d'un écran sensé. La plupart des bugs de permission sont des impasses : un bouton qui ne fait rien, un écran blanc, une demande qui ne réapparaît jamais.
Commence par lister toutes les permissions utilisées par ton app (caméra, localisation, notifications, contacts, micro, stockage ou médias, etc.). Exécute les séquences ci-dessous pour chacune.
Les séquences
A. Première demande. 1. Utilise la fonctionnalité pour la première fois. Attendu : la demande système apparaît au moment où la fonctionnalité en a besoin, précédée d'une courte raison si le but n'est pas évident. 2. Autorise. Attendu : la fonctionnalité marche tout de suite, sans redémarrer.
B. Refus. 3. Installation propre, refuse. Attendu : l'app explique ce qui manque et propose une suite, pas un écran blanc ni un plantage. 4. Relance la fonctionnalité après un refus. Attendu : l'app peut redemander ou expliquer pourquoi, sans harceler. 5. Refuse à répétition jusqu'à ce que le système cesse d'afficher la demande. Attendu : l'app envoie l'utilisateur vers les réglages de l'app avec un message clair et un bouton.
C. Autorisations partielles. (Lorsque le système les propose.) 6. Choisis position approximative au lieu de précise, ou « seulement pendant l'utilisation ». Attendu : la fonctionnalité marche autant que possible, ou indique ce qu'il lui faut. 7. Choisis « autoriser une fois », quitte l'app, reviens plus tard. Attendu : l'app redemande au lieu d'échouer en silence.
D. Révocation pendant que l'app tourne. 8. Révoque la permission dans les réglages, reviens dans l'app. Attendu : pas de plantage ; l'app le remarque et gère la situation. Android peut redémarrer le processus de l'app lors d'une révocation, donc vérifie aussi la restauration d'état. 9. Révoque pendant qu'une fonctionnalité est active, comme un enregistrement ou la localisation en direct. Attendu : arrêt propre.
E. Autres cas. 10. Accorde dans les réglages après un refus, reviens. Attendu : la fonctionnalité marche maintenant. 11. Notifications : refuse, puis active-les plus tard. Attendu : l'app ne suppose pas qu'elles sont activées. 12. Réinitialisation des permissions inutilisées : si l'appareil le propose, vérifie qu'un retour après une longue pause ne casse pas l'app. 13. Retire les permissions que tu n'utilises jamais, et assure-toi que les permissions déclarées correspondent à ce que fait l'app. 14. Vérifie un profil professionnel ou restreint si tu le prends en charge.
Commandes adb utiles
Accorde ou révoque depuis un ordinateur pour accélérer les tests répétés :
adb shell pm revoke <your.package.name> android.permission.CAMERA
adb shell pm grant <your.package.name> android.permission.CAMERA
Remplace le nom de la permission selon le besoin. Toutes les permissions ne peuvent pas être modifiées ainsi.
Quoi signaler
Appareil, version d'Android, permission, lettre de la séquence et numéro d'étape, ce que l'écran affichait, et une capture d'écran.
Limites
Les demandes et options varient selon la version d'Android et le fabricant. Les déclarations côté store et les formulaires de confidentialité sont séparés de ce test fonctionnel ; vérifie les règles actuelles des stores et, pour les questions juridiques, demande un avis professionnel (ceci n'est pas un conseil juridique).
Vue d'ensemble : Test d'applications Android. Liens associés : économiseur de batterie et Doze et mort de processus.
Commence gratuitement sur AppReviewX et fais exécuter ces séquences à des testeurs, qui renvoient leurs retours en privé.