所以今天我们发布了一个应用程序,但遗憾的是我们没有注意到添加了android.permission.READ_PHONE_STATE
的新权限。
一些用户指出已在应用程序中添加了一个新的权限类别
设备ID&电话信息
阅读手机状态和身份
经过一番调查后,我发现这与上述许可有关,但我的任何一份清单都没有。搜索完我的项目后,我发现它包含在manifest-merger-release-report.txt中。
android:uses-permission#android.permission.READ_PHONE_STATE
IMPLIED from AndroidManifest.xml:6:1 reason: com.getpebble.android.kit has a targetSdkVersion < 4
我不希望用户请求此权限,特别是如果它只是因为外部库没有设置其targetSdkVersion。
我使用以下内容将其作为模块的依赖项。
compile 'com.getpebble:pebblekit:2.6.0@aar'
我的问题
如何在无法访问targetSdkVersion
文件的情况下覆盖图书馆AndroidManifest.xml
?
更新
在GitHub上查看库的源代码之后我实际上可以看到它确实正确设置了targetSdkVersion
和minSdkVersion
,因此manifest-merger-release-report.txt
中的提示符是不正确。
答案 0 :(得分:1)
要覆盖来自库的'uses-permission'属性,您可以使用Selector:
<强>选择强>
每个工具:节点或工具:attr声明可以通过增强 tools:selector属性,是关于是否的上下文信息 不应该将合并策略应用于当前较低的策略 优先级XML描述。例如,这在删除a时非常有用 只有来一个特定的图书馆才能获得许可 图书馆:
<permission android:name="permissionOne" tools:node="remove" tools:selector="com.example.lib1">