即将推出的Google政策更改,迫使我们实施一个对话框,通知欧盟用户有关广告和分析的Cookie /设备标识符使用情况.我想只向欧盟用户展示此对话框.我不想使用其他权限(例如android.permission.ACCESS_COARSE_LOCATION).因此我创建了一个测试欧盟用户的功能:
Android的
boolean showCookieHint()
{
final SharedPreferences settings = getSharedPreferences("localPreferences", Context.MODE_PRIVATE);
if (settings.getBoolean("termsAccepted", true) == false) return false;
List<String> list = new ArrayList<String>();
list.add("AT"); //Austria
list.add("BE"); //Belgium
list.add("BG"); //Bulgaria
list.add("HR"); //Croatia
list.add("CY"); //Cyprus
list.add("CZ"); //Czech Republic
list.add("DK"); //Denmark
list.add("EE"); //Estonia
list.add("FI"); //Finland
list.add("FR"); //France
list.add("GF"); //French Guiana
list.add("PF"); //French Polynesia
list.add("TF"); //French Southern Territories
list.add("DE"); //Germany
list.add("GR"); //Greece
list.add("HU"); //Hungary
list.add("IE"); //Ireland
list.add("IT"); //Italy
list.add("LV"); //Latvia
list.add("LT"); //Lithuania
list.add("LU"); //Luxembourg
list.add("MT"); //Malta
list.add("NL"); //Netherlands
list.add("PL"); //Poland
list.add("PT"); …Run Code Online (Sandbox Code Playgroud) 我尝试通过 productFlavors 构建不同的 Android 应用程序包。为了保存和测试文件,我需要一个固定的文件名。
对于 APK,我有以下工作代码:
applicationVariants.all { variant ->
if (variant.buildType.name.equals("release")) {
variant.outputs.all { output ->
outputFileName = "${applicationId}-${versionCode}-${variant.flavorName}.apk"
}
}
if (variant.getBuildType().isMinifyEnabled()) {
variant.assemble.doLast {
copy {
from variant.mappingFile
into variant.outputs[0].outputFile.parent
rename { String fileName ->
"${applicationId}-${versionCode}-${variant.flavorName}-mapping.txt"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这不适用于捆绑。我尝试使用此代码使其正常工作:
tasks.whenTaskAdded { task ->
if (task.name.startsWith("bundle")) {
def renameTaskName = "rename${task.name.capitalize()}Aab"
def flavor = task.name.substring("bundle".length()).uncapitalize()
tasks.create(renameTaskName, Copy) {
println android.defaultConfig.versionName
def applicationId = android.defaultConfig.applicationId
def versionCode = android.defaultConfig.versionCode
def path = "${buildDir}/outputs/bundle/${flavor}/"
from(path)
include …Run Code Online (Sandbox Code Playgroud)