JPush SDK 小米通道集成指南
概述
在国内 Android 生态中,推送通道都是由终端与云端之间的长链接来维持,严重依赖于应用进程的存活状态。如今一些手机厂家会在自家 rom 中做系统级别的推送通道,再由系统分发给各个 app,以此提高在自家 rom 上的推送送达率。
JPush SDK 为了尽可能提高开发者在各类 rom 上的推送送达率,对使用 MIUI 的设备推送,自动切换到小米通道。同时,为了保证 SDK 的易用性,原本 JPush 的所有接口调用逻辑都不用修改,JPush 会对自身支持的功能做兼容.只需在manifest中配置上小米 SDK 必须的配置组件即可.
功能描述
JPush 初始化的时候可选择是否初始化 MiPush 通道。
在 MIUI 设备上 JPush 通道与 MiPush 通道共存.
MiPush 通道初始化后支持 stopPush/resumePush 与 tag/alias这些 JPush 原有的功能,其它的 JPush 未支持的功能目前暂时还不可用.
注1:极光集成小米通道在 JPush Android SDK 3.0.3 添加,对应测试的小米 SDK 版本为:3.2.2
注2:极光 JPush Android SDK 3.6.0 升级小米通道SDK,对应测试的小米 SDK 版本为:3.7.5
注3:极光 JPush Android SDK 3.9.0 升级小米通道SDK,对应测试的小米 SDK 版本为:3.8.5
手动配置集成步骤
主要步骤为:
1. 增加小米插件包及小米推送包
将third-push目录下找到xiaomi目录,从libs中拷贝其中的jar包至工程的libs目录下。
jar包说明:
jpush-android-plugin-xiaomi-v3.x.x.jar:插件包
MiPush_SDK_Client_x_x_x.jar:小米推送包
注: 极光集成小米SDK在 JPush Android SDK 3.2.0 有升级,对应测试的小米 SDK 版本为:3.6.12
注: 极光集成小米SDK在 JPush Android SDK 3.3.2 有升级,对应测试的小米 SDK 版本为:3.6.18
注: 极光集成小米SDK在 JPush Android SDK 3.6.0 有升级,对应测试的小米 SDK 版本为:3.7.5
2. 配置小米推送sdk所需要的权限
android:name="您应用的包名.permission.MIPUSH_RECEIVE"
android:protectionLevel="signature" />
3. 配置小米必须的组件
android:name="com.xiaomi.push.service.XMJobService"
android:enabled="true"
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE"
android:process=":pushservice" />
android:name="com.xiaomi.push.service.XMPushService"
android:enabled="true"
android:process=":pushservice" />
android:name="com.xiaomi.mipush.sdk.PushMessageHandler"
android:enabled="true"
android:exported="true" />
android:name="com.xiaomi.mipush.sdk.MessageHandleService"
android:enabled="true" />
android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver"
android:exported="true">
android:name="com.xiaomi.push.service.receivers.PingReceiver"
android:exported="false"
android:process=":pushservice">
说明:
请不要将极光的组件 PushReceiver 配置进程和主进程分离(按照示例默认配置即可),否则会影响小米 RegId 的获取。
4. 配置JPush接受的小米sdk的消息接受类
android:name="cn.jpush.android.service.PluginXiaomiPlatformsReceiver"
android:exported="tr