小米推送订阅消息接入指南更新时间:2026-07-03 16:19:02
为了改善小米终端用户的通知体验,营造良好可持续的推送生态,小米推送对现有订阅消息下发能力进行了升级:
一、订阅消息简介
小米推送支持真实订阅类消息接入,订阅消息具备如下特点:
- 订阅类消息的通知开关权限需用户手动订阅后开启;
- 接入订阅功能的消息被认为是用户主动要求接收的消息,享有私信同等权益;
- 订阅弹窗的触发策略由开发者自定义,需升级SDK完成订阅授权;
- 用户交互如下图:
.png)
注意:
1. 应用需先申请应用的总通知开关权限,订阅消息channel开关为二级权限;两项通知权限全部开启后,应用推送的通知才可正常展示在通知栏。
2. 订阅弹窗30s内最多调用5次,单channel一个月内最多调用2次。
二、订阅消息接入指南
1. 申请公信-订阅分类
8个订阅消息分类为:
资讯订阅、直播预约、活动预约、赛事预约、作品预约、游戏内动态提醒、上线提醒、商品预约,分类规范及申请方式详见《小米推送2026年消息分类新规》。
2. 申请模板的方法
订阅类消息需使用模板下发,接入详见:小米推送模板接入指南。
3. 客户端接入
1、升级现有推送SDK
请访问SDK下载页,下载最新版Android客户端SDK。
2、请求订阅Channel接口
MiPushClient.requestSubscribeChannel(Context context, ArrayList<String>, SubscribeRemindManager.Callback callback)- 功能:向小米推送服务发起Channel订阅请求(需用户授权)
- 使用前提:
- 成功注册MiPushSDK
- 入参说明:
| 参数名 | 数据类型 | 是否必填 | 字段含义 & 取值说明 |
| context | Context | 是 | 用于获取应用包名 |
| channelIds | ArrayList<String> | 是 | 待订阅 / 创建的渠道 ID 列表;示例:["channelId1","channelId2","channelId3"];SDK会对List长度进行校验,单次调用最多展示3个channel,超出部分丢弃。 |
| callback | SubscribeRemindManager.Callback | 是 | 结果回调接口,SDK 完成所有操作后,通过该接口返回最终结果 |
- 调用示例:
MiPushClient.requestSubscribeChannel(MainActivity.this, list, new SubscribeRemindManager.Callback() {
@Override
public void onResult(int code, Bundle bundle) {
if (code == 0) {
if (bundle != null && bundle.containsKey("open_channel_result") && bundle.getString("open_channel_result") != null) {
// 解析json字符串,获取请求channel集合的用户操作结果
}
} else {
// 订阅弹窗未正常弹出,查看错误码处理
}
}
});3、结果回调接口
SubscribeRemindManager.Callback- 功能:处理订阅操作的结果
onResult返回值说明:
| 参数名 | 数据类型 | 是否必填 | 字段含义 & 取值说明 |
| code | int | 是 | 弹窗操作结果码 |
| bundle | Bundle | 是 | Channel操作结果,Key为"open_channel_result",Value为json字符串,json字符串示例: [ { "channelId":"channel1", "code": -100 }, { "channelId":"channel2", "code": 100 } ] |
弹窗操作结果码:
| 结果码 | 说明 |
| 0 | 订阅弹窗正常弹出,用户操作结果正常返回 |
| -100 | 订阅弹窗未弹出,xmsf版本过低,设备本身不支持该订阅功能 |
| -200 | 订阅弹窗未弹出,鉴权失败导致订阅/取消订阅失败 |
| -300 | 订阅弹窗未弹出,三方应用activity不在顶部或设备不属于亮屏状态 |
| -400 | 订阅弹窗未弹出,该设备处于订阅流程中 |
| -500 | 订阅弹窗未弹出,处于频控状态 |
| -600 | 订阅弹窗未弹出,参数异常 |
| -700 | 订阅弹窗未弹出,用户取消 |
| -800 | 订阅弹窗未弹出,无通知权限 |
| -900 | 由于错误或网络原因导致订阅/取消失败 |
| -10000 | 订阅弹窗未弹出,应用未启用Push |
| -10001 | 订阅弹窗未弹出,版本不支持 |
| -10002 | 订阅弹窗未弹出,所有channelId无效 |
| -10003 | 订阅弹窗未弹出,获取channel信息失败 |
单个channel操作结果码:
| 结果码 | 说明 |
| 100 | channel有效,创建成功 |
| -100 | channel有效,创建失败 |
| -200 | channel有效,用户拒绝打开 |
| -300 | channel有效,本地已经创建过,开关状态为开 |
| -400 | channel有效,本地已经创建过,开关状态为关 |
| -500 | channel无效 |
上一篇:服务器API地址以及参数
下一篇:小米推送模板接入指南
文档内容是否有帮助?
有帮助
无帮助