Почему автоматически добавляются разрешения на мой AndroidManifest при включении библиотеки Google Play Services

Я заметил, что следующие разрешения были добавлены автоматически, когда я использую следующее в файле build.gradle

compile 'com.google.android.gms:play-services:7.5.0' 

Это не произошло с более ранними версиями игровых сервисов. Есть ли у кого-нибудь решение удалить эти нежелательные разрешения?

Я использую только функцию рекламы (INTERNET и ACCESSNETWORK_STATE). Мне не нужны разрешения LOCATION и USE_CREDENTIALS. Как удалить эти нежелательные разрешения?

Я заметил, что файл «manifest-merger-xxx-debug-report.txt» содержит следующее

  ...<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> 

Solutions Collecting From Web of "Почему автоматически добавляются разрешения на мой AndroidManifest при включении библиотеки Google Play Services"

Когда вы используете

 compile 'com.google.android.gms:play-services:7.5.0' 

Это означает, что вы используете каждую функцию Служб Google Play, включая службы определения местоположения. Если вам нужен только определенный API, вы должны использовать выборочные API .

В случае рекламы вы можете использовать исключительно:

 compile 'com.google.android.gms:play-services-ads:7.5.0' 

Вы можете исключить эти автоматически добавленные разрешения, если ваша функция приложения не требуется.

В моем случае я пользуюсь сервисом Google wallet play 8.3, который добавляет GET_ACCOUNTS и USE_CREDENTIALS . Мы не требуем от пользователя выбрать учетную запись google для выбора кошелька Google.

 <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" делает трюк при создании полного манифеста.

Посмотрите полный финальный AndroidManifest.xml в /build/intermediates/manifest/full/debug