Je joue actuellement avec Android m. Ce que je prévois est d'ajouter un écran à mes paramètres dans l'application où l'utilisateur peut accorder ou révoquer des autorisations.
L'écran ressemblerait à l'écran des paramètres système standard, mais contiendra des informations supplémentaires sur les raisons pour lesquelles mon application a besoin de l'autorisation spécifique. Cet écran de paramètres serait un ajout à la gestion régulière des autorisations comme suggéré dans Documentation .
Le workflow serait:
Ma question est donc la suivante: les autorisations peuvent-elles être révoquées par programme? J'ai beaucoup cherché, mais je n'ai pas réussi à obtenir des résultats.
Vous ne pouvez rien faire (du moins jusqu'à présent). De plus, aucune action d'intention n'est ouverte pour ouvrir les paramètres du système d'activité de votre application. Ma suggestion est d'ouvrir une "demande de fonctionnalité" sur le suivi des problèmes d'aperçu du développeur.
Vous pouvez révoquer l'autorisation d'ADB Shell. si vous envisagez d'écrire un script Shell et de faire tout cela par programme, alors OUI, sinon NON
Accorder et révoquer des autorisations
Vous pouvez utiliser les nouvelles commandes du gestionnaire de packages ADB (pm) pour accorder et révoquer des autorisations à une application installée. Cette fonctionnalité peut être utile pour les tests automatisés.
Pour accorder une autorisation, utilisez la commande grant du gestionnaire de packages:
$ adb Shell pm grant <package_name> <permission_name>
Par exemple, pour accorder au package com.example.myapp l'autorisation d'enregistrer de l'audio, utilisez cette commande:
$ adb Shell pm grant com.example.myapp Android.permission.RECORD_AUDIO
Pour révoquer une autorisation, utilisez la commande revoke du gestionnaire de packages:
$ adb Shell pm revoke <package_name> <permission_name>
Non par programmation, il n'est pas possible dans Android M Aperçu avec de nouvelles autorisations Modèle.
Mais manuellement, vous pouvez faire comme indiqué. révoquer les autorisations manuellement
pour une autorisation spéciale comme SYSTEM_ALERT_WINDOW. tu en as besoin :
adb Shell appops set <package_name> SYSTEM_ALERT_WINDOW allow