【友盟+】消息推送SDK 自动集成文档(U-Push) 原文标题:
内容概要总结
本文是【友盟+】消息推送 SDK(U-Push)的 Android 自动集成文档,给出从申请 Appkey 到跑通推送的完整步骤。开发环境要求 JDK 1.7+、Android Studio 3.6+、minSdkVersion 14、Gradle 4.6+;集成方式为在根目录 build.gradle 添加 maven 仓库、在 app/build.gradle 引入 common/asms/push(可选 uyumao 地理围栏)组件,并在自定义 Application 的 onCreate 中先调用 UMConfigure.preInit 预初始化、在用户同意隐私政策后再调用 UMConfigure.init 正式初始化并注册推送。
文档重点说明了推送设备标识 deviceToken:它由推送平台生成用于标识设备,长度为 44 位,同一台设备上不同应用对应的 deviceToken 不一样,可通过 PushAgent.getInstance(context).getRegistrationId() 获取。此外要求在 SplashActivity/MainActivity 调用 PushAgent.getInstance(this).onAppStart() 做应用活跃统计,且必须在用户同意隐私政策协议之后调用,否则会有合规问题。
原文内容(原文即中文)
前言
【友盟+】消息推送SDK 自动集成文档
开发环境
- JDK 1.7及以上
- Android Studio 3.6及以上
- Android minSdkVersion 14
- Gradle 4.6及以上
快速集成
1. 申请Appkey
参考:新手指引
2. 接入SDK
- 在根目录build.gradle中添加maven仓库
allprojects {
repositories {
mavenCentral()
...
}
}
- 在app/build.gradle中添加组件
dependencies {
api 'com.umeng.umsdk:common:+'
api 'com.umeng.umsdk:asms:+'
api 'com.umeng.umsdk:push:+'
api 'com.umeng.umsdk:uyumao:+'//可选,如要使用地理围栏推送功能则必选
}
3. 使用SDK
- 在自定义Application类onCreate()方法中初始化,可参考3分钟示例项目
public class MyApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
//友盟日志输出开关
UMConfigure.setLogEnabled(true);
//预初始化
UMConfigure.preInit(this, appkey, channel);
//是否同意隐私政策
boolean agreed = ...;
if (!agreed) {
return;
}
//建议在子线程中初始化
new Thread(new Runnable() {
@Override
public void run() {
init(getApplicationContext());
}
}).start();
}
public static void init(final Context context) {
// 初始化配置,应用配置信息:http://message.umeng.com/list/apps
// 参数1:上下文context;
// 参数2:应用申请的Appkey;
// 参数3:应用发布渠道;
// 参数4:设备类型,UMConfigure.DEVICE_TYPE_PHONE:手机;UMConfigure.DEVICE_TYPE_BOX:盒子;默认为手机
// 参数5:Push推送业务的secret,填写Umeng Message Secret对应信息
UMConfigure.init(context, appkey, channel, UMConfigure.DEVICE_TYPE_PHONE, messageSecret);
// 注册推送
PushAgent api = PushAgent.getInstance(context);
...
api.register(new UPushRegisterCallback() {
@Override
public void onSuccess(String deviceToken) {
Log.i(TAG, "deviceToken: " + deviceToken);
//注册厂商通道
registerDevicePush(context);
}
@Override
public void onFailure(String errCode, String errDesc) {
Log.e(TAG, "register failed! " + "code:" + errCode + ",desc:" + errDesc);
}
});
}
}
说明
- deviceToken是推送平台生成的用于标识设备的id,长度为44位
- 同一台设备上不同应用对应的deviceToken不一样
- 获取deviceToken后,才可以进行消息推送测试
- 注册成功后,可通过SDK接口获取deviceToken:PushAgent.getInstance(context).getRegistrationId()
- 应用活跃统计
在App的SplashActivity或MainActivity中onCreate()方法添加
PushAgent.getInstance(this).onAppStart();
重要
- 该方法是推送平台多维度推送决策必调用的方法,请务必调用
- 需在用户同意隐私政策协议之后调用,否则会出现合规问题
4. 消息推送测试
恭喜您已经顺利获取deviceToken,可以通过推送消息平台向这台设备推送消息了~
5. 接入完成
此时在您的测试手机上可以验证和处理推送消息了!
至此您已完整集成了【友盟+】消息推送SDK,更多高级功能请参考高级功能集成文档