小米推送通道集成指南
小米推送通道是由小米官方提供的系统级推送通道。在小米手机上,推送消息能够通过小米的系统通道抵达终端,并且无需打开应用就能够收到推送。
获取小米推送秘钥
根据小米开放平台指引开通小米开发者账号,然后注册应用并获取小米推送的秘钥。
认证小米开发者:

获取小米推送秘钥:

在app build.gradle添加小米通道SDK依赖
dependencies {
 ...
 //由于推送底层网络库依赖OkHttp3网络库,请添加OkHttp3依赖
 implementation 'com.squareup.okhttp3:okhttp:3.12.1'
 //推送SDK依赖
 implementation 'com.growingio.android:gtouch:$gtouch_version'
 //小米推送SDK依赖
 implementation 'com.growingio.android.gpush:gpush-xiaomi-adapter:$gtouch_version'
}
$gtouch_version 为最新SDK版本号,现最新的版本号为请参考SDK更新日志。
配置AppID和AppKey
android {
 ......
 defaultConfig {
 manifestPlaceholders =  [
 PACKAGE_NAME :  "您的APP包名",
 GPUSH\_XIAOMI\_APP_ID :  "小米推送的AppId",
 GPUSH\_XIAOMI\_APP_KEY:  "小米推送的AppKey",
 ]
 ......
 }
 ......
}
代码混淆
-keep class  com.xiaomi.**{*;}
-keep public  class  *  extends  com.xiaomi.mipush.sdk.PushMessageReceiver
配置服务端AppID和AppSecret

在应用配置界面输入您APP的AppID和AppSecret
厂商通道测试方法
- 将集成好的App(测试版本)安装在一台小米测试机上,并且运行App
 - 保持App在前台运行,尝试扫码测试推送消息
 - 如果应用收到消息,将App退到后台,并且杀掉所有App进程
 - 再次进行测试推送消息,如果能够收到推送,则表明厂商通道集成成功
 
兼容性
如果您的App已经集成了个推VIP或极光VIP版本的推送SDK,我们的Android SDK也能兼容。
为了和个推兼容,我们将厂商通道独立打包。以小米推送通道为例,我们打包两个SDK:gpush-mipush-sdk和gpush-xiaomi-adapter。如果是从未接过个推、极光等VIP版本的用户可以直接添加小米推送通道依赖。
implementation 'com.growingio.android.gpush:gpush-xiaomi-adapter:$gtouch_version'
如果是个推、极光等VIP版本的用户可以将小米官方SDK包gpush-mipush-sdk 排除出去。
implementation ('com.growingio.android.gpush:gpush-xiaomi-adapter:$gtouch_version'){
 exclude(group:  'com.growingio.android.gpush'  , module:  'gpush-mipush-sdk')
}