Как динамически установить индивидуальное разрешение protectionLevel из файла build.gradle? - PullRequest
1 голос
/ 28 января 2020

Я бы хотел установить 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, но до сих пор не смог заставить его работать в этом случае.

1 Ответ

1 голос
/ 28 января 2020

Обычно манифесты-заполнители могут использоваться:

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

А затем:

<permission
    android:name="com.somestring.MY_CUSTOM_PERMISSION"
    android:protectionLevel="${protectionLevel}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...