web-dev-qa-db-fra.com

Android M: révoquer par programme les autorisations

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:

  • octroi de l'autorisation: ouvrez la boîte de dialogue des systèmes pour accorder/révoquer ( comme suggéré ici )
  • révocation d'une autorisation: révoquez-la par programme

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.

23
W3hri

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.

12
greywolf82

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>
9
dex

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

1
Sushil

pour une autorisation spéciale comme SYSTEM_ALERT_WINDOW. tu en as besoin :

adb Shell appops set <package_name> SYSTEM_ALERT_WINDOW allow
0
i love jack