文档导航
Android
SDK 版本:  5.X
公告:融云新文档中心已上线,欢迎到新文档中心阅读 Android IMLibAndroid IMKit 的文档。

集成小米推送

更新时间:2024-05-22 PDF

集成小米推送

按照本指南集成小米 Mi Push 国内版或海外版,让融云 SDK 支持小米推送。

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

提示

IMLib SDK 从 5.6.8 开始支持小米国际推送服务。

在控制台配置小米推送

如果想通过小米推送通道从融云服务端接收推送通知,您需要在控制台上提供您的小米推送应用的详细信息。

  1. 前往小米开放平台,选择您当前的项目所对应的小米应用,点击应用信息,并记录下应用的 AppIDAppKeyAppSecret

    注意

    如果没有小米开发者账号,或尚未创建应用,参考小米推送文档:

    其中 AppSecret 是小米推送服务器端的身份标识,在使用小米推送服务端 SDK 向客户端发送消息时使用,需要在控制台的小米推送配置中提供给融云。AppId 和 AppKey 是小米推送客户端的身份标识,后续在启用小米推送服务时需要提供给融云 SDK,用于初始化小米推送客户端 SDK。

  2. 打开控制台,前往在应用标识页面。点击设置推送,找到 Android > 小米推送,填入上一步获取的 AppSecret

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

  4. 选择推送通道类型。小米推送的消息类型,分为普通消息和通知消息,查看小米推送消息限制明文档

    • 普通消息,融云默认使用的小米推送通道,有限制。
    • 通知消息,无限制。需要填写小米后台申请的 channelId。
  5. 保存设置。所有设置 30 分钟后生效。

您已完成需要控制台小米推送配置的全部内容。现在可以设置客户端集成。

配置客户端接收小米推送

重要

建议通过 gradle.properties 配置小米的 App ID 与 App Key。如果希望在 App 的 build.gradle 中直接写入配置,请务必额外添加转义符,示例如下:

  • XIAOMI_APP_ID: "\"1882303761517473625\""
  • XIAOMI_APP_KEY : "\"1451747338625\""

您可以通过以下任意一种方案集成小米推送:

  • 方案一:通过 gradle.properties 配置小米的 App ID 与 App Key。
    build.gradle 文件 manifestPlaceholdersXIAOMI_APP_IDXIAOMI_APP_KEY 字段中引用 gradle.properties 属性文件中配置。

    gradle.properties 属性文件配置示例:

    MI_PUSH_APPID="9882303761517473625"
    MI_PUSH_APPKEY="9451747338625"
                  
    已复制
    1
    2

build.gradle 配置示例:

```gradle
android {
    defaultConfig {
        manifestPlaceholders = [
                // 小米相关应用参数
                XIAOMI_APP_ID  : "${MI_PUSH_APPID}",
                XIAOMI_APP_KEY : "${MI_PUSH_APPKEY}",
        ]
    }
    // ...其他配置
}
```
              
已复制
1
2
3
4
5
6
7
8
9
10
11
12

  • 方案二:在 App 的 build.gradle 中添加依赖。

    提示

    如果希望在 App 的 build.gradle 中直接写入配置,请务必额外添加转义符,如下所示:

    android {
       defaultConfig {
           manifestPlaceholders = [
                   // 小米相关应用参数
                   XIAOMI_APP_ID  : "\"9882303761517473625\""
                   XIAOMI_APP_KEY : "\"9451747338625\"",
           ]
       }
       // ...其他配置
    }
                  
    已复制
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    根据小米推送服务的地域完成相应的配置:

    • 中国大陆地区:集成适用于中国大陆地区的小米推送客户端,并配置小米的 XIAOMI_APP_IDXIAOMI_APP_KEY

      android {
       defaultConfig {
          //...
          manifestPlaceholders = [
              XIAOMI_APP_ID : "xxxxxxxx",
              XIAOMI_APP_KEY: "xxxxxxxx"
          ]
       }
      }
      dependencies {
          // x.y.z 为当前 IM SDK 版本号
          implementation 'cn.rongcloud.sdk.push:xiaomi:x.y.z'
      
      }
                    
      已复制
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14

    • 海外地区:小米在印度孟买、德国法兰克福、俄罗斯莫斯科和新加坡设有数据中心。如果您使用小米海外推送服务,必须集成适用于海外地区的小米推送客户端,并配置小米的 XIAOMI_APP_IDXIAOMI_APP_KEY,和地域。

      android {
       defaultConfig {
          //...
          manifestPlaceholders = [
              XIAOMI_APP_ID : "xxxxxxxx",
              XIAOMI_APP_KEY: "xxxxxxxx",
              XIAOMI_APP_REGION : "" // Global, Europe, Russis, India
          ]
       }
      }
      dependencies {
          // x.y.z 为当前 IM SDK 版本号
          implementation 'cn.rongcloud.sdk.xiaomi_global:x.y.z'
      
      }
                    
      已复制
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15

启用小米推送服务

在 SDK init 之前,调用下面代码,初始化 RongPushPlugin 模块。

RongPushPlugin.init(getContext());
              
已复制
1

如果找不到 RongPushPlugin 模块,请检查是否已经集成融云自建推送通道

混淆配置

如果您的应用使用了混淆,您可以使用下面的代码混淆配置:

-dontwarn com.xiaomi.mipush.sdk.**
-keep public class com.xiaomi.mipush.sdk.* {*; }
              
已复制
1
2

处理推送通知的点击事件

  • 自定义推送通知点击事件:介绍如何实现 SDK 的默认跳转行为,以及如何自定义处理点击事件。详见自定义推送通知点击事件
  • 自定义推送通知样式:SDK 接收到其他第三方厂商的推送后,弹出的通知是系统通知,由手机系统底层直接弹出通知,所以不支持自定义。
文档反馈
意见反馈

您的改进建议

意见反馈

问题类型

联系我们

提交工单

技术支持|集成使用|产品方案


商务咨询

7 x 24 小时

为您解答方案与报价问题

131 6185 6839

文档反馈