//Manifest file
<receiver
android:exported="true"
android:enabled="true">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
我们可以在代码中动态创建/添加android:enabled标签吗?
答案 0 :(得分:0)
将其添加到模块级别的gradle代码中:
// modify AndroidManifest.xml
variant.processManifest.doLast {
copy {
from("${buildDir}/manifests") {
include "${variant.dirName}/AndroidManifest.xml"
}
into("${buildDir}/manifests/$variant.name")
filter {
String line ->
line.replaceAll("android:enabled=\"true\"/>",
"android:enabled=\"false\"")
}
// set the path to the modified Manifest:
def manifestPath = "${buildDir}/manifests/${variant.name}/${variant.dirName}/AndroidManifest.xml"
variant.processResources.manifestFile = file(manifestPath)
}
}
PS:您必须使用逻辑来确定何时设置启用的false / true
答案 1 :(得分:0)
根据您的自定义程度,您需要最简单的选项可能是使用AndroidManifest.xml
的不同版本,并在build.gradle
中添加以下内容(在此处使用custom
构建风格)
sourceSets {
custom {
if (myFlag == "true") {
manifest.srcFile "src/custom/AndroidManifest.xml"
} else {
manifest.srcFile "src/custom_disabled/AndroidManifest.xml"
}
}
}