类似用户登录app获取用户是什么手机。运营人员在各大应用商店运营APP,我们负责给他们各个应用商店的渠道包。这里我介绍一下我用到的友盟 。
注册友盟账号新建应用这里就不多说了。这里都有详细的接入文档,记录方便日后所需。
1、在AndroidManifest.xml 的application中添加
<!--所需权限-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<meta-data
android:name="UMENG_APPKEY"
android:value="" />
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
这个地方注意 android:value=”${UMENG_CHANNEL_VALUE}” 值的配置
要与build.gradle文件中配置保持一致
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
2、在build.gradle中添加所需要的渠道
productFlavors {
oppo {}
vivo {}
_360 {}
meizu {}
baidu {}
xiaomi {}
yinyou {}
huawei {}
anzhi {}
le {}
pp {}
muma {}
shaxin {}
shixi {}
jb {}
}
这个时候你Sync Now 应该会出现一个错误
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
大概意思是:所有味道现在必须属于一个命名的味道维度
这个时候在 defaultConfig中加入 flavorDimensions “versionCode” 就完美解决了渠道接入,来源
3、最后一步在注册的接口传递参数和后台配合
String frommarket = null;
ApplicationInfo info = null;
try {
info = getContext().getPackageManager().getApplicationInfo(getContext().getPackageName(), PackageManager.GET_META_DATA);
frommarket = info.metaData.getString("UMENG_CHANNEL");
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
all.put("channel", frommarket);
frommarket 即就是我们所需要的渠道号,我们传给后台,后台保存就好。
相关阅读:
关于混淆可以移步去友盟看官网的记载。
纸上得来终觉浅,书到用时方恨少。共勉。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114981.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...