
更方便的将各个 rom 厂商自己的推送服务进行集成,并统一管理,使用前还是需要熟悉各个平台的相关文档
各个平台的说明- MIUI 系统将使用小米推送
- Flyme 系统将使用魅族推送
- EMUI 系统将使用华为推送
- 其他系统将使用JPush 推送
-
将项目中的 aar 文件夹的四个包导入到自己的项目并添加依赖,在自己项目下的 gradle 文件添加
//项目最外层的 gradle allprojects { repositories { ... maven { url "https://jitpack.io" } } } //app 下的 gradle defaultConfig { ... ndk { abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a' } manifestPlaceholders = [ JPUSH_PKGNAME : applicationId, JPUSH_APPKEY : "3df7e06ec9bf5e79abdc4a6a", JPUSH_CHANNEL : "develop", PNAME : applicationId ] } dependencies { compile 'com.github.jiang111:AndroidPush:v1.1.1' }
-
在自己项目下的 manifest 文件中添加如下代码:
-
在使用推送之前,请在 gradle 中配置 JPUSH_APPKEY 字段为 jpush 平台的 key,在小米和魅族开放平台申请的 id 和 key 进行配置,小米和魅族的配置方法:
Const.setMiUI_APP("APP_MIUI_ID", "APP_MIUI_KEY"); Const.setFlyme_APP("APP_FLYME_ID", "APP_FLYME_KEY");
-
创建 PushInterface 接口的子类,并在相关的方法里实现自己的业务逻辑,并在 Push 类中进行配置。
Push.setPushInterface(pushInterface);
-
注册推送服务,这里会根据自己的 rom 型号自动配置相关的推送服务:
Push.register(this, BuildConfig.DEBUG); //BuildConfig.DEBUG 代表是否开启各个推送服务的 debug 功能.
4.获取当前 rom 平台:
RomUtil.rom();各个推送平台的特点
-
小米和极光推送做的都差不多,通知栏和透传消息都可以自己控制,没什么可说的.
-
flyme 推送 无法对通知栏做任何的控制(除了改改样式),一切都由后台控制 透传消息的话,在 Receiver 的 onMessage()的回调中使用.
-
华为推送 如果推送的消息类型为透传消息的话,则无法使用 extra 字段,只可以用 onPushMsg()回调中的 byte[] msg 参数. 通知栏的话,由于点击动作和魅族一样,都是由后台控制.
在 library 中已经配置混淆,不需要再配置
常见 rom 的区分参考自: http://www.jianshu.com/p/6e6828755667