开发者社区> 问答> 正文

Android 常见问题有哪些



[backcolor=transparent][font="][backcolor=transparent]Q1:我能否在MainActivity中调用cloudpushservice.register?在调用register接口以后,如何知道我注册成功还是失败了,失败的原因是什么?


必须在Application中调用cloudpushservice.register,而不要在Activity中调用。在Activity中调用,将无法有效启动推送的幽灵进程,会大大减少消息的到达率。另外,在未来,我们不确保你使用Activity启动的推送功能会是正常的。

在调用register接口时,你可以传入一个回调对象,即com.alibaba.sdk.android.push.CommonCallback,如果注册成功,及一次性回调CommonCallback.onSuccess,如果注册失败,会回调onFailed,启动带有错误码和错误信息。错误回调之后,我们会重试注册,并用相同的对象,继续给到你回调结果。
(所以错误回调,会有多次,不断重试,直到最后一次成功回调为止。)
失败的原因请参考 错误码列表。


[backcolor=transparent][font="][backcolor=transparent]Q2:调用一次cloudpushservice.register会有多次回调,是什么意思?如果register失败,我是否需要重试?


同问题1,注册失败之后,SDK会自动重新进行注册。所以你不需要在代码中重试,只需要等待onSuccess回调即可。


[backcolor=transparent][backcolor=transparent][font="]Q3:注册/鉴权失败(1056)的错误码是什么意思,我如何解决鉴权失败的问题?


鉴权失败的可能性有以下几个:
- appKey不正确
- appsecert不正确


[backcolor=transparent][backcolor=transparent][font="]Q4:我调用了cloudpushservice.register后获取DeviceId,发现DeviceId是空的,是什么原因?


调用cloudpushservice.register如不能正常获取DeviceId则说明注册没有成功,请重新获取到正确的cloudpushservice.register返回码以后,在使用cloudpushservice.getDeviceId方法获取。


[backcolor=transparent][backcolor=transparent][font="]Q5:我注册成功了,但是收不到推送的消息,我该如何去排查?


- 检查的的MessageReceiver是否在manifest中正确配置声明了。(以及根据快速配置手册,检查其他manifest配置是否正常)
- 检查你在服务端推送的是否是通知,如果是推送通知应该直接弹出;如果推送的是消息,是否有在复写方法onMessage中产生回调。
- 如果以上都正确,请打开debug日志,并在日志筛选中查找AgooFactory标签,看是否有接收到消息的日志展示。
     - 如果没有相应消息展示,请检查服务器端配置是否正确。或咨询服务端客服。
     - 如果有相应消息展示,请咨询客户端客服。


[backcolor=transparent][backcolor=transparent][font="]Q6:我继承了MessageReceiver接口,但是仍然收不到消息,怎么排查?


- 首先,你需要覆盖正确的接口方法。接口方法说明 请参照 API手册。
- 其次,确认你的Manifest中正确地注册了你自己的MessageReceiver 请参 照快速接入手册。
- 最后,确认你的MessageReceiver正常启动,并且能够收到其他的消息,方法为:
  - 打开debuglog
  - 切换网络状态(比如关闭wifi以后在打开)
  - 查看关键字AgooMessageReceiver,看一下是否接收到相关网络事件。
- 如果你连网络切换事件也无法收到,请检查本地Manifest及相关工程配置是否正确。如果你能收到网络事件,却无法收到推送事件,请检查服务器端配置,以及覆盖的方法是否正确。
如果以上配置都正确,可人工咨询SDK相关问题。


[backcolor=transparent][backcolor=transparent][font="][backcolor=transparent]Q7:如何更有效地咨询SDK相关的问题?


在你的应用中加入debuglog,CloudPushService提供接口setLogLevel(logLevel)设置日志等级,logLevel等级定义ERROR = 0; INFO = 1; DEBUG = 2。

展开
收起
猫饭先生 2017-10-23 13:58:37 1552 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载