本章节介绍如何集成移动推送提供的小米厂商通道SDK。
准备工作
已经按照Android SDK接入完成了移动推送SDK的接入。
已经获取了小米推送密钥,如未获取,请登录小米开发平台,注册您的App,得到注册应用的AppID、AppKey、AppSecret。
已经在EMAS控制台配置了推送密钥,如未配置,请登录EMAS移动推送控制台,设置您的小米推送密钥(AppSecret),设置方法参见配置厂商通道密钥。
第一步:将SDK添加到您的应用
在您的模块(应用级)Gradle 文件(通常是<project>/<app-module>/build.gradle)中,在dependencies
中添加SDK依赖。
请阅读Android SDK版本说明,依赖对应版本SDK。
dependencies {
implementation 'com.aliyun.ams:alicloud-android-third-push-xiaomi:x.x.x'
implementation 'com.aliyun.ams:alicloud-android-third-push:x.x.x'
}
移动推送厂商通道SDK只支持maven方式依赖。
第二步:配置使用SDK
1 SDK初始化
SDK初始化务必在Application中执行且放在推送SDK初始化代码之后,否则可能导致厂商通道注册失败。
通过如下方式进行初始化:
MiPushRegister.register(applicationContext, "小米AppID", "小米AppKey")
MiPushRegister.register(applicationContext, "小米AppID", "小米AppKey");
2 混淆配置
如果集成推送SDK的工程开启了代码混淆,需要添加以下厂商通道的Proguard配置。
# 小米通道
-keep class com.xiaomi.** {*;}
-dontwarn com.xiaomi.**
第三步:接入验证
1 打开SDK日志
val pushService = PushServiceFactory.getCloudPushService()
//仅适用于Debug包,正式包不需要此行
pushService.setLogLevel(CloudPushService.LOG_DEBUG)
CloudPushService pushService = PushServiceFactory.getCloudPushService();
//仅适用于Debug包,正式包不需要此行
pushService.setLogLevel(CloudPushService.LOG_DEBUG);
2 确认成功方法
小米通道初始化成功,可看到以下日志:
收到小米通道下行的消息:
12-09 22:24:34.065 19566-25042/com.xxx D/MPS:MiPushReceiver: onReceiveMessage,msg=[{"f":262,"b":"{\"content\"\ ... ... ,"i":"f__-rnje3_OH74gE|VG0g3kwMnGADAGrXZku1FFW5"}]
3 确认失败方法
若小米通道注册失败(未看到小米注册成功日志),请查看系统日志(logcat设置为NoFiters)。
以PushService|BroadcastQueue为正则式进行过滤,示例如下图:
MiPushBroadcastReceiver未配置:
MIPUSH_RECEIVE权限未配置
后续步骤
您已经可以通过EMAS后台将推送通知通过厂商通道推送到手机通知栏,但是要处理点击通知后的逻辑,只能通过辅助弹窗来接收推送数据,详情请参见辅助弹窗接入。
使用移动推送进行厂商通道推送时(使用移动推送控制台或者OpenAPI进行推送时),服务端必须参考辅助弹窗文档进行服务端配置,若服务端参数不设置,将不会给厂商通道进行推送。
Android SDK V2.3.0及以上版本支持小米辅助弹窗。