为什么我的应用程序具有READ_PHONE_STATE权限,尽管它没有在清单中声明?

Jon*_*n S 6 permissions android android-permissions

当我将apk上传到谷歌播放时,我注意到了READ_PHONE_STATE权限.我没有添加它,它没有写在我的清单或我的项目的任何其他文件中的任何地方.(我查看了所有图书馆的许可)

我的应用程序在我之前使用相同库的构建中没有此权限.自上次构建以来,我将android studio更新为版本1,更新了我的android sdk并对我的应用程序进行了一些更改(代码中).我没有在我的应用中请求设备ID.

我的应用有minSDK 14,没有广告.这是我的明显权限:

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

这是apk文件

Jon*_*n S 14

我能够解决问题.它类似于reneph的解决方案.

我发现一个库在build.gradle和manifest文件中都没有指定minSDK.添加后

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 21
}
Run Code Online (Sandbox Code Playgroud)

许可不见了.我不知道为什么没有我之前构建的权限(也没有指定minSDK)它可以工作.必须是Android Studio 1.0或Android SDK更新.


Android开发人员文档获取READ_PHONE_STATE权限:

注意:如果您minSdkVersiontargetSdkVersion值都设置为3或更低,系统会隐式授予您的应用此权限.如果您不需要此权限,请确保您targetSdkVersion的身份等级为4或更高.