Android基于ProductFlavors动态配置权限
16lz
2021-01-23
Android基于ProductFlavors动态配置权限
- ProductFlavors动态配置权限
- 添加 ProductFlavors
- 添加 Manifest
ProductFlavors动态配置权限
使用ProductFlavors动态配置渠道,String ,包名,资源文件很常见,但是动态配置权限就不常见了,现在运营人员想上架华为应用市场,但是华为应用市场要求必须去掉READ_CALL_LOG才可以上架,产品要求华为的不获取通话记录,但其他应用市场照旧,这就有点为难老衲了。
添加 ProductFlavors
//3.0版本Gradle开始必须添加纬度 flavorDimensions "default" //多渠道打包配置 productFlavors { //渠道包 huawei {} huandao {} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [APP_CHANNEL: name] }
添加 Manifest
和自定义图片资源一样,针对于权限我们必须在AndroidManifest.xml文件中定义权限,对于每个渠道 我们必须定义相对应的AndroidManifest.xml文件。不同渠道需要将AndroidManifest添加到不同渠道的文件夹结构下。例如:
app / src / huawei / AndroidManifest.xml
app / src / huandao / AndroidManifest.xml
app / src / main文件夹中有一个默认的AndroidManifest.xml。
在pp / src / huandao文件夹中的AndroidManifest ,添加READ_CALL_LOG权限。
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.xxx.xxx"> <uses-permission android:name="android.permission.READ_CALL_LOG"/></manifest>
如何还需要定义其他渠道的权限也和这个一样写就行,我这里huawei 渠道不需要定义和main不一样的权限,就不创建app / src / huawei / AndroidManifest.xml这个文件了。
在打包时app / src / huandao / AndroidManifest.xml会自动和app / src / main/AndroidManifest.xml合并,就酱紫吧。
更多相关文章
- Android应用程序永久获取root权限方法
- Android所有权限以及权限分类
- Android学习系列(33)--App应用之提交到各大市场渠道
- Android下的文件访问权限
- Android应用程序的权限机制