如何使用gradle构建Android应用程序时删除特定权限? [英] How to remove specific permission when build Android app with gradle?

查看:796
本文介绍了如何使用gradle构建Android应用程序时删除特定权限?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



我的问题是某些权限不需要,我不想要一些敏感权限在我的应用程序。那么如何删除像 android.permission.ACCESS_COARSE_LOCATION 这样的权限?
使用gradle构建,我不想禁用Manifest Merger。我阅读了一些可以配置合并以从外部库中删除权限的地方,但我找不到如何执行它。 解决方案

添加属性工具:节点的值为删除到您的清单:

 < manifest ... xmlns:tools =http://schemas.android.com/tools> 
...
<使用权限android:name =android.permission.READ_PHONE_STATEtools:node =remove/>
...
< / manifest>

请参阅 http://tools.android.com/tech-docs/new-build-system/user-guide / manifest-merger#TOC-tools:节点标记



不要忘记添加工具命名空间添加到清单的根元素。


Recently Google auto merge permission from Google Service to final release apk. Some one ask here Why are permissions being automatically added to my AndroidManifest when including Google Play Services library

My problem is some permission don't need and I don't want some sensitive permission in my app. So how to remove permission like android.permission.ACCESS_COARSE_LOCATION ? With gradle build, I don't want to disable Manifest Merger. I read some where that can config Merger to remove permission from external lib, but I can't find how to do it.

解决方案

Add attribute tools:node with a value of remove to your manifest:

<manifest ... xmlns:tools="http://schemas.android.com/tools">
    ...
    <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/>
    ...
</manifest>

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

Don't forget to add the tools namespace to the root element of your manifest.

这篇关于如何使用gradle构建Android应用程序时删除特定权限?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆