PlayServices广告库7.5.0需要WRITE_EXTERNAL_STORAGE权限

Chr*_*her 7 android admob google-play-services

在我们的build.gradle中,我们将播放服务广告库从6.5.87更新为7.5.0

compile com.google.android.gms:play-services-ads:7.5.0
Run Code Online (Sandbox Code Playgroud)

升级后,我们在合并的AndroidManifest.xml中看到了一个新权限(放在/ build/intermediates/manifests/full/release /中)

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

关于ManifestMerger的日志,play-services-ads添加了此权限:

ADDED from com.google.android.gms:play-services-ads:7.5.0:30:9
    android:theme
ADDED from com.google.android.gms:play-services-ads:7.5.0:31:13
    android:name
ADDED from com.google.android.gms:play-services-ads:7.5.0:30:19
    uses-permission#android.permission.WRITE_EXTERNAL_STORAGE
Run Code Online (Sandbox Code Playgroud)

在官方文档中,我们没有看到任何需要此权限的提示.仅记录以下权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Run Code Online (Sandbox Code Playgroud)

(https://developers.google.com/mobile-ads-sdk/docs/dfp/android/quick-start#modifying_the_android_manifest)

有没有官方信息,为什么添加这个新的权限?或者这是一个错误?

目前我们无法解释我们的用户,为什么我们需要这个新的权限.

编辑:错误的警报! 我误解了manifest-merger-result.txt.play-services- ads依赖项未添加新权限,但我们还添加了play-services- location依赖项.play-services- location引用了play-services- maps,这需要这个权限来缓存tile.

manifest-merger-result.txt的正确解释是:

uses-permission#android.permission.WRITE_EXTERNAL_STORAGE
ADDED from com.google.android.gms:play-services-maps:7.5.0:22:5
Run Code Online (Sandbox Code Playgroud)

如果添加了lib,则play-services-maps会自动添加此"缺失"权限.如果我们不使用Map-API,如果删除这个map-permissions是个好主意,那将是很好的.因为我们只使用Location-API.

ian*_*ake 1

此问题已作为Google Play 服务 8.3 的一部分得到修复- 地图 API(位置所依赖的)不再需要存储权限,也不再通过清单合并添加它。