包括Google Play服务库时,为什么权限会自动添加到我的AndroidManifest中

我注意到,当我在build.gradle文件中使用以下权限时,会自动添加以下权限

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

这与早期版本的播放服务没有发生。 有没有人有一个解决scheme来删除这些不需要的权限?

我只使用广告function(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> 

当你使用

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

这意味着您正在使用Google Play服务的所有function,包括位置服务。 如果你只需要一个特定的API,你应该使用select性的API 。

在广告的情况下,您可以单独使用:

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

如果您的应用function不需要,您可以排除这些自动添加的权限。

在我的情况下,我正在使用Google wallet播放服务8.3,它增加了GET_ACCOUNTSGET_ACCOUNTS 。 我们不要求用户select谷歌帐户select谷歌钱包。

 <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"在创build完整的清单的时候会有诀窍。

/build/intermediates/manifest/full/debug查看完整的最终AndroidManifest.xml