Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何设置自定义权限';是否从build.gradle文件动态设置保护级别?_Android_Gradle_Build.gradle_Android Manifest - Fatal编程技术网

Android 如何设置自定义权限';是否从build.gradle文件动态设置保护级别?

Android 如何设置自定义权限';是否从build.gradle文件动态设置保护级别?,android,gradle,build.gradle,android-manifest,Android,Gradle,Build.gradle,Android Manifest,我想根据调试或发布动态地设置android权限的protectionLevel,例如,从build.gradle文件中设置,如下所示: AndroidManifest.xml文件: <permission android:name="com.somestring.MY_CUSTOM_PERMISSION" android:protectionLevel=BuildConfig.protectionlevel /> android { buildTypes {

我想根据调试或发布动态地设置android权限的
protectionLevel
,例如,从
build.gradle
文件中设置,如下所示:

AndroidManifest.xml
文件:

<permission
    android:name="com.somestring.MY_CUSTOM_PERMISSION"
    android:protectionLevel=BuildConfig.protectionlevel />
android {
    buildTypes {
        release {
          buildConfigField "String" , "protectionlevel" , "signature"     
        }
        debug{
          buildConfigField "String" , "protectionlevel" , "normal"
        }
    }
}
以这种方式设置
build.gradle
中的变量适用于java/其他情况,但不适用于
signature
。我尝试了一些其他的变体,您可以在快速的谷歌搜索中找到,但到目前为止,我无法使其适用于这种情况。

通常可以使用:

buildTypes {
    release {
        manifestPlaceholders = [protectionLevel: "signature"]  
    }
    debug{
        manifestPlaceholders = [protectionLevel: "normal"] 
    }
}
然后:

<permission
    android:name="com.somestring.MY_CUSTOM_PERMISSION"
    android:protectionLevel="${protectionLevel}" />