android - 找出谁将 READ_PHONE_STATE 添加到我的 list 文件中?

标签 android

我正在编译一个没有明确请求 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/

相关文章:

Android:Robolectric 不支持 API 级别 1

android - 如何在 Espresso 中获取 TextView 的实际颜色值

Android:使用 Handler 更新 UI

android - NFC 设备作为另一个 Android HCE 的阅读器

android - 如何在选定的行上显示从相机捕获的图像?

android - 如何对 View 应用转换?

Android Intent 创建

android - 在生产代码中包含 Toast 的单元测试失败

android - 如何在私有(private) channel 的google play中添加应用程序

带有路径数组的 Android ImageFlipper