第三章:集成JPush Android SDK
3.6 使用API
JPush SDK 提供的 API 接口,都主要集中在 cn.jpush.android.api.JPushInterface 类里。
2.6.1 基础API
init 初始化SDK
public static void init(Context context)
setDebugMode 设置调试模式
注:该接口需在init接口之前调用,避免出现部分日志没打印的情况。多进程情况下建议在自定义的Application中onCreate中调用。
// You can enable debug mode in developing state. You should close debug mode when release.
public static void setDebugMode(boolean debugEnalbed)
2.6.2 调用示例代码
init 只需要在应用程序启动时调用一次该 API 即可。
以下代码定制一个本应用程序 Application 类。需要在 AndoridManifest.xml 里配置。请参考上面 AndroidManifest.xml 片断,或者 example 项目。
public class ExampleApplication extends Application { @Override public void onCreate() { super.onCreate(); JPushInterface.setDebugMode(true); JPushInterface.init(this); } }
2.6.3 测试确认
集成测试确认:
- 确认所需的权限都已经添加。如果必须的权限未添加,日志会提示错误。
- 确认 AppKey(在Portal上生成的)已经正确的写入 Androidmanifest.xml 。
- 确认在程序启动时候调用了init(context) 接口
- 客户端调用 init 后不久,如果一切正常,应有登录成功的日志信息
- 测试是否能够获取到RegistrationID的值,如果能够获取到,则表示集成成功。调用JPushInterface.getRegistrationID() 获取该值。
- 在几秒内,客户端应可收到下发的通知或者自定义消息,如果 SDK 工作正常,则日志信息会如下:
[JPushInterface] action:init
.......
[PushService] Login succeed!
客户端测试确认:
确认测试手机(或者模拟器)已成功连入网络(可以切换网络来判断是否该网络运营商有问题)
请使用接口 isPushStopped 来检查 是否调用了stoppush,若是请调 resumepush 进行恢复
检查手机的应用高级设置中是否设置了“允许推送时间”
手机的应用中是否勾选了“显示通知”
手机 - 设置 - 通知栏 -是否选择了横幅提醒
2.6.5 接收控制台消息
如果客户端能够正常启动,那么此时客户端应该就能能够接收控制台发来的消息了。控制台的使用方法见https://blog.csdn.net/mengqidluffy/article/details/80333232
在控制台发送推送时,需要注意:
- 发送的推送通知内容不能为空,否则客户端不会展示消息;
- 若推送的是自定义消息,则客户端默认不展示;
2.6.4 客户端启动分为 4 步:
- 检查 metadata 的 appKey 和 channel ,如果不存在,则启动失败
- 初始化 JPush SDK,检查 JNI 等库文件的有效性,如果库文件无效,则启动失败
- 检查 Androidmanifest.xml,如果有 Required 的权限不存在,则启动失败
- 连接服务器登录,如果存在网络问题,则登陆失败,或者前面三步有问题,不会启动JPush SDK