为什么要添加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

更新#2Version 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未决。

+1

看起来它已在'9.6.1'中修复......谢谢! – drmrbrewer

我最终发现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" /> 
+0

问题是,它是否会破坏谷歌服务功能中的任何内容?你有没有遇到过任何问题? – vanomart

+1

在早期的android版本上甚至不需要该权限。相反,这里发生的事情是,这个权限甚至在早期的android版本上都没有_exist_,并且现在要求该权限完全不需要权限。如果android studio认为你有不知道权限的旧代码,则会添加权限。 –