公告:融云新文档中心已上线,欢迎到新文档中心阅读 Android IMLib 和 Android IMKit 的文档。
解决推送客户端冲突
更新时间:2024-02-23
PDF
解决推送客户端冲突
本文描述了如何避免或解决在应用程序中可能出现的推送客户端冲突的问题。
出现推送客户端冲突,可能由以下情况导致:
- 应用程序自身已集成第三方推送客户端,与融云推送 2.0 SDK 中的第三方客户端冲突
- 应用程序中依赖的其他 SDK 已集成第三方推送客户端,与融云推送 2.0 SDK 中的第三方客户端冲突
如果存在上述情况,您可以选择是否继续使用融云推送 2.0 SDK。
不再使用融云推送 2.0 SDK
如果您不需要使用融云推送 2.0 SDK,请按如下步骤进行处理:
参照推送 2.0 集成文档,完成控制台的第三方推送配置。
在 SDK init 之前,必须创建
PushConfig
,根据您使用的厂商启用推送通道,并将配置提供给RongPushClient
。PushConfig config = new PushConfig.Builder() .enableFCM(true) .enableHWPush(true) .enableVivoPush(true) .enableMiPush("小米 appId", "小米 appKey") //小米推送配置 .enableMeiZuPush("魅族 appId", "魅族 appKey") // 魅族推送配置 .enableOppoPush("OPPO_App_KEY", "OPPO_App_Secret") // OPPO 推送配置 .build(); RongPushClient.setPushConfig(config); //将推送相关配置设置到 SDK
已复制1
2
3
4
5
6
7
8
9从第三方推送 SDK 获取厂商 token。具体方式请您查看第三方推送 SDK 文档。
由于
RongPushClient
会在 SDK 初始化异步执行,且暂不提供初始化完成的通知,建议您延时 3 秒左右调用onReceiveToken
方法向融云上报推送第三方 Token,否则 SDK 无法正常上报推送相关统计数据。PushManager.getInstance().onReceiveToken(context,pushType,token);
已复制1通过日志查看是否上报成功,搜索关键字 L-push-config-report-token-R,提示 report token success,上报成功集成成功。
继续使用融云推送 2.0 SDK
如果您希望继续使用融云推送 2.0 SDK,可移除应用自身集成的推送 SDK,从融云推送 2.0 SDK 的回调中获取厂商推送 Token,上报给第三方推送厂商,或第三方推送集成商。
您可以在 Application 的 onCreate
方法中设置 PushEventListener
,通过 onTokenReceived(PushType pushType, String token);
回调方法获取厂商推送 Token。
RongPushClient.setPushEventListener(
new PushEventListener() {
@Override
public void onTokenReceived(
PushType pushType,
String token) {
}
/// 此处省略其他方法
});
已复制
1
2
3
4
5
6
7
8
9
10
11
12