首先老套路看图:分别是小米的渠道和应用宝的渠道
这是渠道的渠道号的截图
先说下Gradle的多渠道打包,个人更喜欢这样写:
第一步:需要在清单文件添加标识:
<meta-data
android:name="XiaYiYe"
android:value="${XiaYiYeValue}" />
配置的name和value不是固定值,可以自己取的
第二步:
在app的gradle的android根节点添加如下配置:
productFlavors {
tool {
manifestPlaceholders = [XiaYiYeValue: "360"]
}
yyb {
manifestPlaceholders = [XiaYiYeValue: "yyb"]
}
xiaomi {
manifestPlaceholders = [XiaYiYeValue: "xiaomi"]
}
huawei {
manifestPlaceholders = [XiaYiYeValue: "huawei"]
}
}
当然上面的第二步也可以用下面的方法替代我不常用:
productFlavors {
"wandoujia" {
}
"xiaomi" {
}
"yyb" {
}
"huawei" {
}
baidu {
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [XiaYiYeValue: name]
}
}
注意:
如果你跑起来后报错如下:
ERROR: All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
Affected Modules: app
请在app的gradle里面的android里面defaultConfig根节点里面添加如下字段即可解决上面的错误
flavorDimensions "default"(这里的default随便写不固定)如下图:
这样就配置好了,然后获取渠道号码就行了:
private void showValue() {
try {
PackageManager pm = getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
String channel = appInfo.metaData.getString("XiaYiYe");
Toast.makeText(this, channel, Toast.LENGTH_LONG).show();
} catch (PackageManager.NameNotFoundException ignored) {
}
}
上面的XiaYiYe这个key就是清单文件xml中配置的name这个值,获取到渠道号后直接上传到你们的后台就可以进行渠道统计了