跳到主要内容

集成魅族推送

按照本指南集成 魅族 Flyme 推送客户端,让融云 SDK 支持从魅族推送服务获取推送通知。

在集成第三方推送前,请确保已在融云控制台配置 Android 应用 ID。详见推送集成概述

在融云控制台配置魅族推送

如果想通过魅族推送接收融云即时通讯服务的推送通知,您需要在融云控制台上提供您的魅族推送应用的详细信息。

  1. 前往 魅族推送平台,并记录下应用的 AppIDAppKeyAppSecret

    提示

    如果没有魅族 Flyme 开发者账号,或尚未创建应用,参考魅族 Flyme 推送接入文档Flyme 开发者账号通过认证后可创建应用。

    (width=600)

    (width=600)

  2. 打开融云控制台,在应用标识页面点击设置推送,找到 Android > 魅族推送,填入上一步获取的 AppIDAppSecret

    (height=400)

  3. (可选)配置推送通知标题。设置默认的推送通知标题。一般情况下客户端发送消息转 Push 时不使用此标题设置。在调用融云服务端 API /push.json/push/user.json/push/custom.json 接口推送通知时,如未传入通知标题,则使用该处设置的标题。从服务端发消息时,如果发送用户 ID 在融云服务端没有用户名,也会使用此 “推送通知标题”。

  4. 是否开启推送回执。您需要在魅族推送平台中新建回执,并在此启用后,才能获取到魅族通道送达数据。具体配置流程详见上报推送数据

  5. 保存设置。所有设置 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 目录下。

(width=600)

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 之前,将魅族的 AppIDAppKey 添加到 PushConfig,并提供给 SDK。融云 SDK 将向魅族 Flyme 推送服务注册、并将获取的 Flyme 推送 Token 上报给融云服务端。

PushConfig 为所有推送配置相关的入口类。

PushConfig config = new PushConfig.Builder()
.enableMeiZuPush("魅族 appId", "魅族 appKey")
.build();
RongPushClient.setPushConfig(config);

解决与已有 Flyme 推送集成的冲突

如果您的应用或应用依赖的其他 SDK 已集成魅族 Flyme 推送客户端,此时无法再按上述步骤集成魅族推送,否则会发生冲突。

请如下步骤进行处理:

  1. 创建一个自定义的 Broadcast Receiver,例如 MZPushReceiver,继承融云 SDK 提供的 MeiZuReceiver,并覆写父类方法。
  2. 使用新创建的 MZPushReceiver 替换应用中原有的 Flyme 推送的 Broadcast Receiver。
  3. AndroidManifest.xml 中注册新创建的 MZPushReceiver