今天接入极光推送学习一下,就发现的问题一起探讨 主要包含了注册、接入、sdk版本获取失败、后台保活介绍
接入的时候还是按照官方接入流程,主要就是一下三步
注册
注册极光推送账号
创建应用(记录自己的appkey)
根据平台设置推送设置,主要是设置一个包名(这个包名一定要和自己的app设置成一样的,一定要检查好,最好创建好项目的时候再进行设置,保证一致)
接入
1、导入jar和so文件
- 解压缩 jpush-android-release-3.x.y.zip 集成压缩包。
- 复制 libs/jcore-android_v1.x.y.jar 到工程 libs/ 目录下。
- 复制 libs/jpush-android_v3.x.y.jar 到工程 libs/ 目录下。
- 复制 libs/(cpu-type)/libjcore1xy.so 到你的工程中存放对应cpu类型的目录下。
- 复制 res/ 中drawable-hdpi, layout, values文件夹中的资源文件到你的工程中 res/ 对应同名的目录下。
说明 1:若没有res/drawable-xxxx/jpush_notification_icon这个资源默认使用应用图标作为通知icon,在5.0以上系统将应用图标作为statusbar icon可能显示不正常,用户可定义没有阴影和渐变色的icon替换这个文件,文件名不要变。
说明 2:使用android studio的开发者,如果使用jniLibs文件夹导入so文件,则仅需将所有cpu类型的文件夹拷进去;如果将so文件添加在module的libs文件夹下,注意在module的gradle配置中添加一下配置:
android {
......
sourceSets {
main {
jniLibs.srcDirs = ['libs']
......
}
......
}
......
}
2、配置清单文件
根据 SDK 压缩包里的 AndroidManifest.xml 样例文件,来配置应用程序项目的 AndroidManifest.xml 。
主要步骤为:
- 复制备注为 "Required" 的部分
- 将标注为“您应用的包名”的部分,替换为当前应用程序的包名
- 将标注为“您应用的Appkey”的部分,替换为在Portal上注册该应用的的Key,例如:9fed5bcb7b9b87413678c407
问题
1、sdk版本获取失败
使用android stuio 出现这样的错误[JPushGloabl] Get sdk version fail![获取sdk版本失败!],如果出现这样的问题
那么请首先查看注册时推送设置里面相应平台的包名和自己的是否一致。
其次最好将libs拷贝的内容查验,如果没有问题,建议重新拷贝
最好就是接入的时候的说明2.
后台保活
1、请检查收不到通知的手机:
请在logcat查看日志,确定客户端的jpush是否集成成功,网络是否有问题
请看日志或使用接口 isPushStopped来检查是否调用了stoppush
检查手机的JPush高级设置中是否设置了“允许推送时间”
手机的应用中是否勾选了“显示通知”2、第三方系统收不到推送的消息
由于第三方 ROM 的管理软件需要用户手动操作
小米【MIUI】
自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程无法开启
通知栏设置:应用默认都是显示通知栏通知,如果关闭,则收到通知也不会提示
华为【Emotion】
自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程不会开启,只能手动开启应用
后台应用保护:需要手动把应用加到此列表,否则设备进入睡眠后会自动杀掉应用进程,只有手动开启应用才能恢复运行
通知管理:应用状态有三种:提示、允许、禁止。禁止应用则通知栏不会有任何提醒
魅族【Flyme】
自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程发开启
通知栏推送:关闭应用通知则收到消息不会有任何展示