一、 配置多渠道打包
1、在AndroidManifest.xml的application中配置
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
2、在app的build中配置
productFlavors {
baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
flavorDimensions "versionCode"
}
baidu{
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "helper91"]
flavorDimensions "versionCode"
}
baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "anzhuo"]
flavorDimensions "versionCode"
}
}
大家需要几个渠道就写几个
baidu、baidu、baidu等是渠道名称
3、这时候配置完了已经 去打包界面会发现
恭喜多渠道打包配置完毕!
二、接下来说再代码中获取当前打包的渠道名称
/**
* 获取渠道名
* @return 如果没有获取成功,那么返回值为空
*/
public String getChannelName() {
if (this.mContext == null) {
return null;
}
String channelName = null;
try {
PackageManager packageManager = this.mContext.getPackageManager();
if (packageManager != null) {
//注意此处为ApplicationInfo 而不是 ActivityInfo,因为友盟设置的meta-data是在application标签中,而不是某activity标签中,所以用ApplicationInfo
ApplicationInfo applicationInfo = packageManager.
getApplicationInfo(this.mContext.getPackageName(), PackageManager.GET_META_DATA);
if (applicationInfo != null) {
if (applicationInfo.metaData != null) {
channelName = String.valueOf(applicationInfo.metaData.get("UMENG_CHANNEL"));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return channelName;
}