第三方推送平台推送ID上传(Android)
SDK支持上传推送平台的设备推送ID,上传后,可以后续通过WEB端筛选,导出特定人群的推送ID。目前支持的平台:百度云
,极光
,个推
,华为
,小米
,友盟
,信鸽
,阿里云
,OPPO
,魅族
。
iOS端的第三方推送平台推送ID打通,请查看该链接
平台推送ID上传
调用如下API:
/**
* 设置推送id,设置后推送ID会回传到服务器。WEB端可以支持根据筛选规则导出推送ID,将导出的推送ID对接到特定的推送平台,实现精准推送
*
* @param context
* @param platform 推送平台
* @param pushId 客户端获取的对应推送平台的推送ID
*/
StatService.setPushId(Context context, MtjConfig.PushPlatform platform, String pushId)
推送平台,通过MtjConfig.PushPlatform
指定:BAIDUYUN
(百度云),JIGUANG
(极光),GETUI
(个推),HUAWEI
(华为),XIAOMI
(小米), UMENG
(友盟),XINGE
(信鸽),ALIYUN
(阿里云),OPPO
(OPPO),MEIZU
(魅族)
平台推送ID获取
由于获取推送ID的方式会有多种,APP开发者自行获取保存,然后调用上述API上报即可。为方便开发者,以下给出建议的获取方式。
- 百度云
@Override
public void onBind(Context context, int errorCode, String appid, String userId, String channelId, String requestId) {
// 上传ID
StatService.setPushId(context, MtjConfig.PushPlatform.BAIDUYUN, channelId)
};
极光
接收极光推送广播,解析 Intent,判断action 为 JPushInterface.ACTION_REGISTRATION_ID ,获取 clientId。clientId 为 SDK 向 JPush Server 注册所得到的 全局唯一的 ID ,可以通过此 ID 向对应的客户端发送消息和通知。
APP获取clientId,调用
StatService.setPushId(context, MtjConfig.PushPlatform.JIGUANG, clientId)
上传。个推
@Override
public void onReceiveClientId(Context context, String clientid) {
Log.e(TAG, "onReceiveClientId -> " + "clientid = " + clientid);
// 上传ID
StatService.setPushId(context, MtjConfig.PushPlatform.GETUI, clientid)
}
华为
TMID:用户标识唯一标识一部用户终端。此标识在应用通过开放接口注册到PUSH平台时会获得,需要应用客户端将此标识传递给应用服务端。
APP获取TMID,调用
StatService.setPushId(context, MtjConfig.PushPlatform.HUAWEI, tmid)
上传。小米
@Override
public void onReceiveRegisterResult(Context context, MiPushCommandMessage message) {
String command = message.getCommand();
List<String> arguments = message.getCommandArguments();
if (MiPushClient.COMMAND_REGISTER.equals(command)) {
if (message.getResultCode() == ErrorCode.SUCCESS) {
mRegId = cmdArg1;
// 上传ID
StatService.setPushId(context, MtjConfig.PushPlatform.XIAOMI, mRegId)
}
}
}
其它平台
请具体参考平台API,将获取到的可用于推送的设备id,调用百度移动统计API上传即可。