我想根据调试或发布动态设置Android权限的protectionLevel
,例如从build.gradle
文件中,如下所示:AndroidManifest.xml
文件:
<permission
android:name="com.somestring.MY_CUSTOM_PERMISSION"
android:protectionLevel=BuildConfig.protectionlevel />
和
build.gradle
文件:android {
buildTypes {
release {
buildConfigField "String" , "protectionlevel" , "signature"
}
debug{
buildConfigField "String" , "protectionlevel" , "normal"
}
}
}
以这种方式从
build.gradle
设置变量在Java /其他情况下适用,但不适用于signature
。我尝试了一些其他的变体,您可以在快速的Google搜索中找到它们,但是到目前为止,我无法在这种情况下使用它。 最佳答案
通常可以使用manifest placeholders:
buildTypes {
release {
manifestPlaceholders = [protectionLevel: "signature"]
}
debug{
manifestPlaceholders = [protectionLevel: "normal"]
}
}
然后:
<permission
android:name="com.somestring.MY_CUSTOM_PERMISSION"
android:protectionLevel="${protectionLevel}" />