una - ¿Por qué los permisos se agregan automáticamente a mi AndroidManifest cuando se incluye la biblioteca de Google Play Services?
manual de programacion android pdf (2)
Cuando usas
compile ''com.google.android.gms:play-services:7.5.0''
Esto implica que está utilizando todas las funciones de los Servicios de Google Play, incluidos los servicios de ubicación. Si solo necesita una API en particular, debe usar las API selectivas .
En el caso de los anuncios, puede usar únicamente:
compile ''com.google.android.gms:play-services-ads:7.5.0''
Noté que los siguientes permisos se agregaron automáticamente cuando uso lo siguiente en mi archivo build.gradle
compile ''com.google.android.gms:play-services:7.5.0''
Esto no ocurrió con las versiones anteriores de los servicios de juego. ¿Alguien tiene una solución para eliminar estos permisos no deseados?
Solo estoy usando la función de anuncios (INTERNET y ACCESSNETWORK_STATE). No necesito los permisos LOCATION y USE_CREDENTIALS. ¿Cómo se eliminan estos permisos no deseados?
Noté que el archivo ''manifest-merger-xxx-debug-report.txt'' contiene lo siguiente
...<snipped bunch of other merges>
MERGED from com.google.android.gms:play-services-maps:7.5.0:22:5
android:name
ADDED from com.google.android.gms:play-services-maps:7.5.0:22:22
uses-permission#android.permission.ACCESS_COARSE_LOCATION
ADDED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
android:name
ADDED from com.google.android.gms:play-services-maps:7.5.0:23:22
uses-feature#0x00020000
ADDED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
android:glEsVersion
ADDED from com.google.android.gms:play-services-maps:7.5.0:25:8
android:required
ADDED from com.google.android.gms:play-services-maps:7.5.0:26:8
android:uses-permission#android.permission.READ_EXTERNAL_STORAGE
IMPLIED from AndroidManifest.xml:2:1 reason: com.google.android.gms.maps requested WRITE_EXTERNAL_STORAGE
uses-permission#android.permission.GET_ACCOUNTS
ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:5
android:name
ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:22
uses-permission#android.permission.USE_CREDENTIALS
ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:5
android:name
ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:22
meta-data#com.google.android.gms.wallet.api.enabled
...<snips more lines away>
Puede excluir esos permisos agregados automáticamente si la función de su aplicación no lo requiere.
En mi caso, estoy usando el servicio de
Google wallet
GET_ACCOUNTS
USE_CREDENTIALS
8.3 que agrega
GET_ACCOUNTS
y
USE_CREDENTIALS
.
No requerimos que el usuario elija la cuenta de Google para seleccionar Google Wallet.
<uses-permission android:name="android.permission.GET_ACCOUNTS" tools:node="remove"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS" tools:node="remove" />
tools:node="remove"
hace el truco al crear el manifiesto completo.
Mire el
AndroidManifest.xml
final completo en
/build/intermediates/manifest/full/debug