安卓如何限制依赖的包的权限?

我现在自己的app,只开了很少的权限,因为用不到。
但是依赖的一个第三方包,开了一些我用不到的权限,比如地理位置的权限。
能不能在我的代码里进行改动,而不碰第三方包的代码,来达到禁用地理位置的权限的目的?

我的App里AndroidManifest.xml关于权限的部分:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.CAMERA"/>

可以看到只开了3个权限,但是开app的时候总要提示是否授予地理位置权限,我就很纳闷,于是查了代码,发现依赖的一个包里的AndroidManifest.xml有:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />

所以我可不可以只改自己的代码,来禁用掉一些不必要的权限。
不改第三方包的代码是因为第三方包不在git的管理下,哪一天重新安装依赖又得手动改。

阅读 7.4k
3 个回答

声明你要取消的权限,并加入 tools:node="remove" 试试

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove"/>

参考:https://developer.android.com...

清单文件里面不给定位权限就行了啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题