实现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"]
        }
    }
}
相关推荐
游戏开发爱好者83 小时前
日常开发与测试的 App 测试方法、查看设备状态、实时日志、应用数据
android·ios·小程序·https·uni-app·iphone·webview
王码码20353 小时前
Flutter for OpenHarmony 实战之基础组件:第三十一篇 Chip 系列组件 — 灵活的标签化交互
android·flutter·交互·harmonyos
黑码哥3 小时前
ViewHolder设计模式深度剖析:iOS开发者掌握Android列表性能优化的实战指南
android·ios·性能优化·跨平台开发·viewholder
亓才孓3 小时前
[JDBC]元数据
android
独行soc3 小时前
2026年渗透测试面试题总结-17(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
金融RPA机器人丨实在智能4 小时前
Android Studio开发App项目进入AI深水区:实在智能Agent引领无代码交互革命
android·人工智能·ai·android studio
科技块儿4 小时前
利用IP查询在智慧城市交通信号系统中的应用探索
android·tcp/ip·智慧城市
独行soc4 小时前
2026年渗透测试面试题总结-18(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
王码码20355 小时前
Flutter for OpenHarmony 实战之基础组件:第二十七篇 BottomSheet — 动态底部弹窗与底部栏菜单
android·flutter·harmonyos
2501_915106325 小时前
app 上架过程,安装包准备、证书与描述文件管理、安装测试、上传
android·ios·小程序·https·uni-app·iphone·webview