如何使用gradle构建Android应用时删除特定权限?

Dzu*_*gPV 33 java permissions android gradle

最近Google自动将Google服务合并到最终版本apk.有人问这里为什么在包含Google Play服务库时,权限会自动添加到我的AndroidManifest中

我的问题是一些不需要的权限,我不想在我的应用程序中获得一些敏感权限.那么如何删除android.permission.ACCESS_COARSE_LOCATION等权限?使用gradle构建,我不想禁用Manifest Merger.我读了一些可以配置Merger从外部lib中删除权限的地方,但我找不到怎么做.

小智 65

向清单添加tools:node值为的属性remove:

<manifest ... xmlns:tools="http://schemas.android.com/tools">
    ...
    <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/>
    ...
</manifest>
Run Code Online (Sandbox Code Playgroud)

请参阅http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-tools:node-markers

不要忘记将tools命名空间添加到清单的根元素中.