我正在编译一个没有明确请求 READ_PHONE_STATE 权限的项目,但是当我编译时,我在编译的 Android Manifest 文件中看到了该权限。我假设正在引入的某些库正在显式添加它或忘记设置其最低 SDK 版本(这将添加它)。
我唯一要做的就是在最终 list 中,我自己请求的权限如下所示:
<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.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
READ_PHONE_STATE 看起来像这样:
<android:uses-permission android:name="android.permission.READ_PHONE_STATE" />
android前缀有什么意义吗?
有什么方法可以缩小添加此权限的图书馆的范围吗?
最佳答案
您可以准确地查看某个库是否(或因为)向您的 list 添加了一些额外的权限。检查构建过程中生成的文件(见下文)并在文件中查找不需要的权限!
转到您的项目文件夹并查找此路径:
[ProjectFolder]/build/outputs/logs/manifest-merger---report.txt
打开文件并搜索权限 就我而言,我在
找到了这些行 uses-permission#android.permission.READ_PHONE_STATE IMPLIED from
C:\..\...\AppFolder\src\..\AndroidManifest.xml:2:1-14:12 reason:
com.some.evil.library has a targetSdkVersion < 4
这个生成的文件显示了描述的合并过程的输出 here在 Android 开发者网站上。
关于android - 找出谁将 READ_PHONE_STATE 添加到我的 list 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28438708/