为什么要添加READ_PHONE_STATE权限?
在刚刚发布到Play商店的最新测试版本中,我注意到自上一版本以来已添加READ_PHONE_STATE
。为什么要添加READ_PHONE_STATE权限?
我自己没有加这个。我只记得,因为以前的版本做的是使用各种播放服务库(是V9.4.0)的v9.6.0:
compile 'com.google.android.gms:play-services-location:9.6.0'
compile 'com.google.android.gms:play-services-places:9.6.0'
compile 'com.google.android.gms:play-services-auth:9.6.0'
这会都做了吗?我看不到它记录。我可以摆脱许可吗?
而且我确保我使用的所有库都与主应用程序匹配,根据this answer ...对我的情况没有影响。基于this article
编辑
好了,我开始钻研我的日志输出地发现:
ADDED from [Meteogram:jobdispatcher:unspecified] C:\Users\Me\AndroidStudioProjects\Meteogram\app\build\intermediates\exploded-aar\Meteogram\jobdispatcher\unspecified\AndroidManifest.xml:37:25-84 android:uses-permission#android.permission.READ_PHONE_STATE
但没有在jobdispatcher库(我导入到我的项目中已经改变一个gradle模块)自上一版本以来。
EDIT2
下面是从日志的更多一点,我的感觉是,也许是由于剧中服务库版本为可疑?
ADDED from [Meteogram:jobdispatcher:unspecified] C:\Users\Me\AndroidStudioProjects\Meteogram\app\build\intermediates\exploded-aar\Meteogram\jobdispatcher\unspecified\AndroidManifest.xml:37:17-87
android:name
ADDED from [Meteogram:jobdispatcher:unspecified] C:\Users\Me\AndroidStudioProjects\Meteogram\app\build\intermediates\exploded-aar\Meteogram\jobdispatcher\unspecified\AndroidManifest.xml:37:25-84
android:uses-permission#android.permission.READ_PHONE_STATE
IMPLIED from C:\Users\Me\AndroidStudioProjects\Meteogram\app\src\pro\AndroidManifest.xml:2:1-12:12 reason: com.google.android.gmscore.integ.client.location has a targetSdkVersion < 4
activity#com.google.android.gms.common.api.GoogleApiActivity
与上面链接对方的回答中targetSdkVersion < 4
比赛,但有什么我可以在这种情况下做的,因为剧中的服务库不是我的?
EDIT3
我找到了答案......而不是删除这个问题,我会离开它了,有解决方案,以防它万一别人有更好的解决方案为他人有益的(! )
EDIT4
看起来它已被固定在9.6.1
。
更新#2:Version 10.0.1再次解决了该问题。
更新:这也出现在Google Play服务的10.0.0版中,如this post中所报告。
以前的答案:
每this post in the Android Developers G+ Community,主持人(我)的一个发布此评论:
我内部昨天已经报道这个问题,当开发者指出了这一点,修复了已经在内部制作,并且更新的SDK即将推出
并且更新的SDK现在可用 - 使用9.6.1 Google Play服务de未决。
我最终发现this,它报告了同样的问题。一个解决办法是在Answer #3,这是删除的权限提到的“手动”(我的假设是:许可权仅需要非常早期的Android版本,这是正常的我,因为我的minSdk
是16):
<manifest ...
xmlns:tools="http://schemas.android.com/tools"
... >
<uses-permission
android:name="android.permission.READ_PHONE_STATE"
tools:node="remove" />
问题是,它是否会破坏谷歌服务功能中的任何内容?你有没有遇到过任何问题? – vanomart
在早期的android版本上甚至不需要该权限。相反,这里发生的事情是,这个权限甚至在早期的android版本上都没有_exist_,并且现在要求该权限完全不需要权限。如果android studio认为你有不知道权限的旧代码,则会添加权限。 –
看起来它已在'9.6.1'中修复......谢谢! – drmrbrewer