实现android清单文件里某个权限动态配置

举例:<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
需求:debug有这个权限,release没有这个权限

一. 第一种是第三方库没有引入MANAGE_EXTERNAL_STORAGE权限,实现如下

app的AndroidManifest.xml
XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.demo">
    <uses-permission android:name="${MANAGE_EXTERNAL_STORAGE}"
    tools:node="merge"/>

    <application.../>
</manifest>
app模块下build.gradle
Groovy 复制代码
android {
    ...
    buildTypes {
        debug {
            ...
            //debug提供真实权限
            manifestPlaceholders = [MANAGE_EXTERNAL_STORAGE: "android.permission.MANAGE_EXTERNAL_STORAGE"]
        }
        release {
            ...
            //release提供com.example.demo.permission占位,有值才能编译过
            manifestPlaceholders = [MANAGE_EXTERNAL_STORAGE: "com.example.demo.permission"]
        }
    }
}

二.第二种是第三方库已经引入了MANAGE_EXTERNAL_STORAGE权限,实现如下

app的AndroidManifest.xml
XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.demo">
    <uses-permission android:name="${MANAGE_EXTERNAL_STORAGE}"
    tools:node="remove"/>

    <application.../>
</manifest>
app模块下build.gradle
Groovy 复制代码
android {
...
    buildTypes {
        debug {
            ...
            //debug提供com.example.demo.permission占位,有值才能编译过
            manifestPlaceholders = [MANAGE_EXTERNAL_STORAGE: "com.example.demo.permission"]
        }
        release {
            ...
            //release提供真实权限
            manifestPlaceholders = [MANAGE_EXTERNAL_STORAGE: "android.permission.MANAGE_EXTERNAL_STORAGE"]
        }
    }
}
相关推荐
Bervin121385 小时前
Flutter Android环境的搭建
android·flutter
e***877011 小时前
windows配置永久路由
android·前端·后端
fouryears_2341713 小时前
现代 Android 后台应用读取剪贴板最佳实践
android·前端·flutter·dart
YF021114 小时前
Frida for MacBook/Android 安装配置
android·前端
雨白14 小时前
Android实战:构建高可维护的日志系统
android
茄子凉心15 小时前
android 开机启动App
android·java·开发语言
2501_9371931417 小时前
神马影视 8.8 版源码:4K 播放优化体验测评
android·源码·源代码管理·机顶盒
修炼者19 小时前
Kotlin中的Flow流
android·kotlin
洞见不一样的自己19 小时前
Android studio 编译问题
android
j***630819 小时前
SpringbootActuator未授权访问漏洞
android·前端·后端