build.gradle(app)设置
android {
flavorDimensions "default"
productFlavors{
//不同渠道
360{
dimension "default"
//替换AndroidManifest中的值
manifestPlaceholders = [channel_value:"360"]
}
qq{
dimension "default"
//替换AndroidManifest中的值
manifestPlaceholders = [channel_value:"qq"]
}
}
}
AndroidMainfest设置
<application
...
<meta-data android:name="CHANNEL_VALUE" android:value="${channel_value}"/>
...
</application>
代码中获取渠道值
/**
* 从Manifest中获取meta-data值
* @param context
* @param key
* @return
*/
public static String getMetaData(Context context,String key) {
String value = null;
try {
ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(
context.getPackageName(), PackageManager.GET_META_DATA);
value = appInfo.metaData.getString(key);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
if (value==null) value="";
return value;
}