本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
本章节介绍如何集成移动推送提供的小米辅助通道SDK。
开启小米推送服务
登录小米开放平台->推送运营平台,创建您的App,并开启应用的推送服务。
小米推送目前分为国内SDK和国际版SDK,在创建应用时需要根据自己应用的分发地在推送运营平台确定地区。
获取小米推送密钥
登录小米开发平台,注册您的App,得到注册应用的AppID、AppKey、AppSecret。
如果主要客户在海外,除需要注册中国大陆Region外,还需开通对应的海外Region,中国大陆和海外Region的AppID、AppKey、AppSecret可能不同。
控制台配置密钥
登录移动推送控制台,设置您的小米推送密钥(AppSecret),设置方法参见配置厂商通道密钥。
辅助通道集成
如果使用辅助通道扩展包V3.2.0及以上版本,需要将推送SDK升级到V3.2.0及以上版本。
3.2.0及以上版辅助通道扩展包以aar形式透出,省却manifest文件配置,减少出错概率。
3.2.0及之前版本,小米通道依赖包已内置在alicloud-android-third-push中,无需单独添加。
准备工作
请阅读Android SDK版本说明,下载对应版本SDK或获取最新SDK配置信息。
从v3.8.6版本开始,小米辅助通道分为国内版和国际版,请根据自身应用的分发地确定是接入国内版还是国际版。
添加依赖
方式一(首选):Maven集成
项目顶层build.gradle中添加Maven仓库地址:
allprojects { repositories { maven { url 'http://maven.aliyun.com/nexus/content/repositories/releases/' } } }
如果应用分发地是国内,请依赖国内版小米辅助通道,gradle添加如下依赖:
dependencies { implementation 'com.aliyun.ams:alicloud-android-third-push-xiaomi:x.x.x' implementation 'com.aliyun.ams:alicloud-android-third-push:x.x.x' }
如果应用分发地是海外,请依赖国际版小米辅助通道,gradle添加如下依赖:
dependencies { implementation 'com.aliyun.ams:alicloud-android-third-push-xiaomi:x.x.x-intl' //海外版的版本号是x.x.x-intl,如3.8.6-intl implementation 'com.aliyun.ams:alicloud-android-third-push:x.x.x' }
方式二:手动集成
解压下载好的辅助通道SDK扩展包,并将之放置到app module的libs路径下,并在app module的build.gradle文件中添加如下配置:
repositories { flatDir { dirs 'libs' //this way we can find the .aar file in libs folder } } ... dependencies { ...... //根据具体的版本添加依赖 implementation(name: 'alicloud-android-third-push-3.x.x', ext: 'aar') implementation(name: 'alicloud-android-third-push-xiaomi-x.x.x', ext: 'aar') //3.2.2版本开始,需要单独添加小米sdk依赖,小米sdk是jar形式 implementation fileTree(include: ['*.jar'], dir: 'libs') }
混淆配置
如果集成推送SDK的工程开启了代码混淆,需要添加以下辅助通道的Proguard配置。
# 小米通道 -keep class com.xiaomi.** {*;} -dontwarn com.xiaomi.**
初始化
重要辅助通道注册务必在Application中执行且放在推送SDK初始化代码之后,否则可能导致辅助通道注册失败。
为了提高小米辅助通道的注册率,建议在
Application
的onCreate
方法中初始化小米辅助通道。如果集成了小米辅助通道国内版,通过如下方式进行初始化:
// 注册方法会自动判断是否支持小米系统推送,如不支持会跳过注册。 MiPushRegister.register(applicationContext, "小米AppID", "小米AppKey");
如果集成了小米辅助通道国际版,通过如下方式进行初始化:
//务必在调用registerPush前先调用setRegion设置区域 MiPushClient.setRegion(Region.Global);//Global,Europe,Russia,India MiPushRegister.registerPush(applicationContext, "小米AppID", "小米AppKey");
重要初始化小米辅助通道国际版时,一定要先调用
MiPushClient.setRegion
接口设置数据存储区域,可选区域有:Global - 新加坡
Europe - 欧洲德国法兰克福
India - 印度孟买
Android 8+适配
自Android 8.0(API Level 26)起,Android推出了NotificationChannel机制,旨在对通知进行分类管理。如果用户App的
targetSdkVersion
大于等于26,且并未设置NotificaitonChannel
,那么创建的通知是不会弹出显示。请参见Android 8.0以上设备接收不到推送通知进行适配。
初始化成功验证
警告查看初始化日志需将SDK日志等级设置为DEBUG,请参见SDK API介绍中的基本设置相关接口中的“设置日志等级”进行设置。
小米通道初始化成功,可看到以下日志:
收到小米通道下行的消息:
12-09 22:24:34.065 19566-25042/com.xxx D/MPS:MiPushReceiver: onReceiveMessage,msg=[{"f":262,"b":"{\"content\"\ ... ... ,"i":"f__-rnje3_OH74gE|VG0g3kwMnGADAGrXZku1FFW5"}]
若小米通道注册失败(未看到小米注册成功日志),请查看系统日志(logcat设置为NoFiters)。
以PushService|BroadcastQueue为正则式进行过滤,示例如下图:
MiPushBroadcastReceiver未配置:
MIPUSH_RECEIVE权限未配置
使用辅助弹窗
厂商通道,除Google通道外,只能通过辅助弹窗来接收推送数据,详情请参见辅助弹窗接入。
使用移动推送进行厂商通道推送时(使用移动推送控制台或者OpenAPI进行推送时),服务端请必须参考辅助弹窗文档进行服务端配置,服务端参数不设置,不会给厂商通道进行推送。
Android SDK V2.3.0及以上版本支持小米辅助弹窗。
辅助通道常见问题
- 本页导读 (0)