集成 vivo 推送
按照本指南集成vivo 推送客户端,融云 SDK 支持从 vivo 推送服务收取推送。
在集成第三方推送前,请确保已在融云控制台配置 Android 应用 ID。详见推送集成概述。
在融云控制台配置 vivo 推送
如果想通过 vivo 推送接收融云即时通讯服务的推送通知,您需要在融云控制台上提供您的 vivo 推送应用的详细信息。
-
前往 vivo 开发者平台-推送服务器平台,并记录下 vivo 应用的 AppID、AppKey、AppSecret。
提示如果没有 vivo 开发者账号,或尚未创建应用,参考 vivo 文档 vivo 推送接入流程。
-
打开融云控制台,在应用标识页面点击设置推送,找到 Android > vivo 推送,填入上一步获取的 AppID、AppKey、AppSecret。
-
(可选)配置推送通知标题。设置默认的推送通知标题。一般情况下客户端发送消息转 Push 时不使用此标题设置。在调用融云服务端 API
/push.json
、/push/user.json
、/push/custom.json
接口推送通知时,如未传入通知标题,则使用该处设置的标题。从服务端发消息时,如果发送用户 ID 在融云服务端没有用户名,也会使用此 “推送通知标题”。 -
配置推送模式。关于正式推送与测试推送的区别,请参考 vivo 文档vivo 推送使用指南。
-
(可选)配置推送通道类型与 Category(消息二级分类)。如果调用客户端或服务端 API 发送消息或推送通知时未传值,默认使用此处配置的值。请参考 vivo 文档推送消息分类说明进行配置。
-
保存设置。所有设置 30 分钟后生效。
您已完成需要融云控制台 vivo 推送配置的全部内容。现在可以设置客户端集成。
配置客户端接收 vivo 推送
首先,需要将 vivo 客户端 SDK 添加到您的 Android 项目。
- 如果您项目使用的 IMLib/IMKit SDK 版本大于等于 5.2.1,则 vivo 推送客户端 SDK 必须集成或升级至 3.0.0.4 及之后版本。
- 如果您项目使用的 IMLib/IMKit SDK 版本大于等于 5.6.8,必须使用 vivo 推送客户端 SDK 3.0.0.7 或更新版本。
您也可以直接从 vivo 下载最新版 AAR 包进行手动集成(参考 vivo 的Android PUSH-SDK 集成指南)或从融云下载。融云官网 SDK 下载页提供 vivo 推送客户端 SDK 下载。在页面勾选第三方推送后,下载 zip 文件。在解压后的文件目 录中找到 pushlibs 下的 vivo 推送客户端 SDK 文件(vivo-pushSDK-xxx.aar
),拷贝到 app 的 libs
目录下。
dependencies {
implementation (name: 'vivo-pushSDK-xxx', ext: 'aar')
}
处理 vivo 推送的权限、服务与广播接收器
在主工程中的 AndroidManifest.xml
中增加权限声明,集成 vivo 推送客户端 SDK 只需要配置网络权限:
<!-- 推送需要的权限列表 -->
<uses-permission android:name="android.permission.INTERNET"/>
vivo 推送客户端 SDK 需要配置对应的 AppID 、AppKey 信息(从 vivo 开发者平台-推送服务器平台 获取),请在 AndroidManifest.xml
中添加以下配置:
<!-- vivo 推送配置项 -->
<meta-data
android:name="com.vivo.push.api_key"
android:value="您的 vivo 推送平台生成 AppKey"/>
<meta-data
android:name="com.vivo.push.app_id"
android:value="您的 vivo 推送平台生成 AppID"/>
接入 vivo 推送客户端 SDK 注册以下 service、activity。
<!-- vivo 推送服务需要配置的 service、activity -->
<service
android:name="com.vivo.push.sdk.service.CommandClientService"
android:exported="true"/>
<activity
android:name="com.vivo.push.sdk.LinkProxyClientActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
以上内容来自 vivo。如需了解更多细节,请参考 vivo 文档 Android PUSH-SDK 集成指南。
使用融云 SDK 提供的广播接收器
为了接收 vivo 推送消息,必须实现一个继承自 vivo OpenClientPushMessageReceiver
类的广播接收器(Broadcast Receiver)。融云 SDK 已经实现了该广播接收器,您只需要将融云提供的 VivoPushMessageReceiver
注册 到 AndroidManifest.xml 文件中,注册内容如下:
<!-- vivo push 推送 receiver 声明 -->
<receiver android:name="io.rong.push.platform.vivo.VivoPushMessageReceiver"
android:exported="true">
<intent-filter>
<!-- 接收 vivo push 消息 -->
<action android:name="com.vivo.pushclient.action.RECEIVE" />
</intent-filter>
</receiver>
启用 vivo 推送服务
请在初始化融云 SDK 之前启用 vivo 推送服务。融云 SDK 将向 vivo 推送服务注册、并将获取的 vivo 推送 Token 上报给融云服务端。
PushConfig
为所有推送配置相关的入口类。
PushConfig config = new PushConfig.Builder()
.enableVivoPush(true)
.build();
RongPushClient.setPushConfig(config);
解决与已有 vivo 推送集成的冲突
如果您的应用或应用依赖的其他 SDK 已集成 vivo 推送客户端,此时无法再按上述步骤集成 vivo 推送,否则会发生冲突。
请如下步骤进行处理:
- 创建一个自定义的 Broadcast Receiver,例如
VivoPushReceiver
,继承融云 SDK 提供的VivoPushMessageReceiver
,并覆写父类方法。 - 使用新创建的
VivoPushReceiver
替换应用中原有的 vivo 推送的 Broadcast Receiver。 - 在
AndroidManifest.xml
中注册新创建的VivoPushReceiver
。