小米推送

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

  1. 注册小米推送
  2. 接入小米推送
  3. 测试小米推送

注册小米推送

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

接入小米推送

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

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

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

    1. <permission
    2. android:name="${applicationId}.permission.MIPUSH_RECEIVE"
    3. android:protectionLevel="signature"/>
    4. <uses-permission android:name="${applicationId}.permission.MIPUSH_RECEIVE"/>
    5. <application>
    6. <!-- value 斜杠空格要保留 -->
    7. <meta-data
    8. android:name="xiaomi_appid"
    9. android:value="\ 2xxxxxxxxxxxxxxx" />
    10. <!-- value 斜杠空格要保留 -->
    11. <meta-data
    12. android:name="xiaomi_appkey"
    13. android:value="\ 5xxxxxxxxxxxxxxx" />
    14. </application>

测试小米推送

  1. 接入小米推送后,您可以在小米手机上启动应用并确保调用了初始化方法(参见 消息推送初始化),推送 SDK 会自动获取小米推送的厂商 token 并上报。
  2. 可以在杀掉应用进程的情况下推送测试消息:
    • 如果仍然能收到消息,说明应用成功接入小米推送。
    • 如果不能收到消息,请按照下文进行问题排查。

排查问题

  1. 检查 AndroidManifest.xml 配置是否添加,以及其中 xiaomi_appidxiaomi_appkey 的值是否和小米开放平台一致。
  2. 检查 mPaaS 控制台是否开启了小米通道(参见 配置小米推送通道),以及相关配置是否和小米开放平台一致。
  3. 查看 logcat 日志进行排查:

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

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

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

    2. 选择 push 进程,过滤 mMi,检查是否获取到了小米推送的厂商 token。如出现以下日志(register_fail):检查小米 token

      说明小米推送注册失败,错误码(reason)参见 小米推送错误码。如果错误码为 UNKNOWN,通常是 xiaomi_appidxiaomi_appkey 错误。

    3. 选择主进程,过滤 report channel token, 检查上报小米厂商 token 是否成功,如出现以下日志:
      1. report channel token error: xxxx
      说明上报厂商 token 失败,请检查 mPaaS 配置文件base64Code 是否有值,以及获取配置文件时上传的 apk 签名和当前应用是否一致。
  4. 如按以上步骤排查后仍无法解决问题,请提交工单或联系 mPaaS 支持人员。