web-dev-qa-db-fra.com

Comment supprimer une autorisation spécifique lors de la construction de l'application Android avec gradle?

Récemment, Google a fusionné automatiquement l'autorisation du service Google avec la version finale de l'apk. Quelqu'un demande ici Pourquoi les autorisations sont-elles automatiquement ajoutées à mon AndroidManifest lors de l'inclusion de la bibliothèque des services Google Play

Mon problème est qu'une autorisation n'est pas nécessaire et je ne veux pas d'une autorisation sensible dans mon application. Alors, comment supprimer une autorisation comme Android.permission.ACCESS_COARSE_LOCATION ? Avec gradle build, je ne veux pas désactiver la fusion manifeste. J'ai lu certains endroits où cela peut configurer Merger pour supprimer l'autorisation de la bibliothèque externe, mais je ne trouve pas comment le faire.

32
DzungPV

Ajouter un attribut tools:node avec une valeur de remove à votre manifeste:

<manifest ... xmlns:tools="http://schemas.Android.com/tools">
    ...
    <uses-permission Android:name="Android.permission.READ_PHONE_STATE" tools:node="remove"/>
    ...
</manifest>

Voir http://tools.Android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-tools:node-markers

N'oubliez pas d'ajouter l'espace de noms tools à l'élément racine de votre manifeste.

63
Johan Stuyts