集成魅族推送
按照本指南集成 魅族 Flyme 推送客户端,让融云 SDK 支持从魅族推送服务获取推送通知。
在集成第三方推送前,请确保已在融云控制台配置 Android 应用 ID。详见推送集成概述。
在融云控制台配置魅族推送
如果想通过魅族推送接收融云即时通讯服务的推送通知,您需要在融云控制台上提供您的魅族推送应用的详细信息。
-
前往 魅族推送平台,并记录下应用的 AppID、AppKey、AppSecret。
提示如果没有魅族 Flyme 开发者账号,或尚未创建应用,参考魅族 Flyme 推送接入文档。Flyme 开发者账号通过认证后可创建应用。
-
打开融云控制台,在应用标识页面点击设置推送,找到 Android > 魅族推送,填入上一 步获取的 AppID、AppSecret。
-
(可选)配置推送通知标题。设置默认的推送通知标题。一般情况下客户端发送消息转 Push 时不使用此标题设置。在调用融云服务端 API
/push.json
、/push/user.json
、/push/custom.json
接口推送通知时,如未传入通知标题,则使用该处设置的标题。从服务端发消息时,如果发送用户 ID 在融云服务端没有用户名,也会使用此 “推送通知标题”。 -
是否开启推送回执。您需要在魅族推送平台中新建回执,并在此启用后,才能获取到魅族通道送达数据。具体配置流程详见上报推送数据。
-
保存设置。所有设置 30 分钟后生效。
您已完成需要融云控制台魅族推送配置的全部内容。现在可以设置客户端集成。
配置客户端接收魅族推送
首先,需要将魅族推送客户端 SDK 添加到您的 Android 项目。
魅族已将 4.1.0 之后的推送客户端 SDK 发布到 mavenCentral()。确保您的项目已经添加 mavenCentral() 后,您可以在 App 的 build.gradle
中添加依赖,直接引入魅族推送客户端 SDK:
dependencies {
implementation 'com.meizu.flyme.internet:push-internal:4.1.4@aar'
}
您也可以直接从魅族下载最新版 AAR 包进行手动集成(Flyme 推送 SDK 下载)或从融云下载。融云官网 SDK 下载页提供魅族推送客户端 SDK 下载。在页面勾选第三方推送后,下载 zip 文件。在解压后的文件目录中找到 pushlibs 下的魅族推送客户端 SDK 文件(meizu-push-xxx.aar
),拷贝到 app 的 libs
目录下。
dependencies {
implementation (name: 'meizu-push-xxx', ext: 'aar')
}
配置魅族推送客户端的权限
在主工程中的 AndroidManifest.xml
里增加进行以下权限声明:
<!-- MeiZu 配置开始 -->
<!-- 兼容 flyme5.0 以下版本,魅族内部集成 pushSDK 必填,不然无法收到 消息-->
<uses-permission
android:name="com.meizu.flyme.push.permission.RECEIVE"/>
<permission
android:name="您的包名.push.permission.MESSAGE"
android:protectionLevel="signature"/>
<uses-permission android:name="您的包名.push.permission.MESSAGE"/>
<!-- 兼容 flyme3.0 配置权限-->
<uses-permission android:name="com.meizu.c2dm.permission.RECEIVE" />
<!-- MeiZu 配置结束 -->
使用融云 SDK 提供的广播接收器
为了接收魅族推送消息,必须实现一个继承自魅族 MzPushMessageReceiver
类的广播接收器(Broadcast Receiver)。融云 SDK 已经实现了该广播接收器,您只需要将融云提供的 MeiZuReceiver
注册到 AndroidManifest.xml 文件中,注册内容如下:
<application>
<receiver
android:name="io.rong.push.platform.meizu.MeiZuReceiver" android:exported="true"> <!-- 由于 Android 12 的要求,存在 intent-filter 的组件 exported 必须设置为 true -->
<intent-filter>
<!-- 接收 push 消息 -->
<action android:name="com.meizu.flyme.push.intent.MESSAGE"/>
<!-- 接收 register 消息 -->
<action
android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />
<!-- 接收 unregister 消息-->
<action
android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK"/>
<!-- 兼容低版本 Flyme3 推送服务配置 -->
<action android:name="com.meizu.c2dm.intent.REGISTRATION"/>
<action android:name="com.meizu.c2dm.intent.RECEIVE" />
<category android:name="您的包名"/>
</intent-filter>
</receiver>
</application>
启用魅族 Flyme 推送服务
请在初始化融云 SDK 之前,将魅族的 AppID、AppKey 添加到 PushConfig
,并提供给 SDK。融云 SDK 将向魅族 Flyme 推送服务注册、并将获取的 Flyme 推送 Token 上报给融云服务端。
PushConfig
为所有推送配置相关的入口类。
PushConfig config = new PushConfig.Builder()
.enableMeiZuPush("魅族 appId", "魅族 appKey")
.build();
RongPushClient.setPushConfig(config);
解决与已有 Flyme 推送集成的冲突
如果您的应用或应用依赖的其他 SDK 已集成魅族 Flyme 推送客户端,此时无法再按上述步骤集成魅族推送,否则会发生冲突。
请如下步骤进行处理:
- 创建一个自定义的 Broadcast Receiver,例如
MZPushReceiver
,继承融云 SDK 提供的MeiZuReceiver
,并覆写父类方法。 - 使用新创建的
MZPushReceiver
替换应用中原有的 Flyme 推送的 Broadcast Receiver。 - 在
AndroidManifest.xml
中注册新创建的MZPushReceiver
。