小米推送

本文主要介绍小米推送的接入流程,主要包括以下三个步骤。

  1. 注册小米推送

  2. 接入小米推送

  3. 测试小米推送

注册小米推送

参考以下小米官方文档,完成小米推送注册:

接入小米推送

  1. 添加 推送 - 小米 组件。添加方式与添加推送 SDK 相同,参见 添加推送 SDK

    当前内置的小米推送 SDK 版本为 4.0.2,历史版本参见 发布说明

  2. 配置 AndroidManifest.xml(组件化方式在 Portal 工程中添加),并替换其中的 xiaomi_appidxiaomi_appkey 的值。

     <permission
         android:name="${applicationId}.permission.MIPUSH_RECEIVE"
         android:protectionLevel="signature"/>
     <uses-permission android:name="${applicationId}.permission.MIPUSH_RECEIVE"/>
     <application>
    
         <!-- value 斜杠空格要保留 -->
         <meta-data
             android:name="xiaomi_appid"
             android:value="\ 2xxxxxxxxxxxxxxx" />
         <!-- value 斜杠空格要保留 -->
         <meta-data
             android:name="xiaomi_appkey"
             android:value="\ 5xxxxxxxxxxxxxxx" />
    
     </application>

测试小米推送

  1. 接入小米推送后,您可以在小米手机上启动应用并确保调用了初始化方法(参见 消息推送初始化),推送 SDK 会自动获取小米推送的厂商 token 并上报。

  2. 可以在杀掉应用进程的情况下推送测试消息:

    • 如果仍然能收到消息,说明应用成功接入小米推送。

    • 如果不能收到消息,请按照下文进行问题排查。

排查问题

  1. 检查 AndroidManifest.xml 配置是否添加,以及其中 xiaomi_appidxiaomi_appkey 的值是否和小米开放平台一致。

  2. 检查 mPaaS 控制台是否开启了小米通道(参见 配置小米推送通道),以及相关配置是否和小米开放平台一致。

  3. 查看 logcat 日志进行排查:

    1. 选择 push 进程,过滤 mPush.PushProxyFactory,检查是否存在以下日志:

      D/mPush.PushProxyFactory: found proxy com.mpaas.push.external.mi.Creator

      若无,说明添加 推送 - 小米 组件可能存在问题,请确认小米推送组件是否正确添加。

    2. 选择 push 进程,过滤 mMi,检查是否获取到了小米推送的厂商 token。

      如出现以下日志(register_fail),说明小米推送注册失败。错误原因(reason)参见 小米推送错误码。如果错误原因显示 UNKNOWN,通常是 xiaomi_appidxiaomi_appkey 错误。结果码(resultCode)参见 小米推送服务端错误码

    3. 选择主进程,过滤 report channel token, 检查上报小米厂商 token 是否成功,如出现以下日志:

      report channel token error: xxxx

      说明上报厂商 token 失败,请检查 mPaaS 配置文件 base64Code 是否有值,以及获取配置文件时上传的 apk 签名和当前应用是否一致。