开发者社区> 问答> 正文

个推推送Android问题检测 - 安卓报错

3、网络延迟问题: 4、如何获取到手机上APP的CID 5、在调用个推接口的时候,会返回状态码,注:返回客户端状态(status),有如下两种状态:在线返回:successed_online离线返回:successed_offline还有一种是 successed_ignore ,请问是什么意思? 6、为什么CID和APPID绑定错误,导致消息接收不到? 7、Tag何时才可以设置? 8、stopService( )方法无效的原因? 9、服务端调用接口给应用推送消息,为什么在个推平台里没有这条推送的记录呢? 10、android客户端为什么一定要加android.permission.WAKE_LOCK这个权限? 11、CID在哪些情况下会变或失效 12、魅族手机强制停止或杀死进程后,消息能接收到,但是点击消息后无反应 13、个推点击通知栏消息可以跳转到指定的应用的界面中吗? 14、客户端SDK一直报10008的代号是什么意思?

1、获取不到CID问题:

1.      查看配置文件是否有问题,appkey、appsecret、appid是否有空格存在。

2.      相关权限是否全部添加。

3.      manifest.xml相关配置是否有添加。

4.      SDK版本是否过旧。

5.      很大部分原因是因网络不稳定导致的。

6.      查看一下manifest.xml配置文件里用户有没有设置自己的Receiver。Recevier没有设置,是接收不到广播消息的,就无法接收到广播里传过来的CID。

2、病毒查杀问题:

1.      先安装一下杀毒软件进行检测。

2.      如果是使用版本过低的SDK导致报病毒,则需要下载修改后的SDK。

3.      看一下是否为“需导入的资料”里的bin\文件夹报的病毒,如果是则删除里面的全部文件。

4.      如果是“真机测试包”报的病毒,则把此包删除掉,用代码重新编译生成一个就可以了。

5.      目前所有病毒问题基本全部解决,如有问题,请下载个推官网最新的压缩包。

3、网络延迟问题:

1.      先测试一下,在工具箱里进行推送,看看是否会延迟。

2.      判断网络原因,是不是因为无线或信号不好导致的客户端假在线。

3.      查日志,看一下客户端的回执有没有上来。

4.      查看此CID的相关日志,个推工具箱里根据CID查到CELL,然后根据CELL去查消息是否进入了离线消息(有可能是断网一会又重连上后才收到消息)。

4、如何获取到手机上APP的CID

1.      手机连接Eclipse,然后点DDMS,在LogCat里查看是否有日志输出;如果没有,在Devices里查看手机是否连接成功,如果没有成功,最好用应用宝或91助手、360手机助手给手机安装一下驱动。

2. 连接成功后,先把应用停止掉再重启一下应用,把LogCat日志清除一下;在LogCat里查找Clientid字段,如果应用成功获取到CID,就会如下图展示,如果获取不到则查询不到CID。

5、在调用个推接口的时候,会返回状态码,注:返回客户端状态(status),有如下两种状态:在线返回:successed_online离线返回:successed_offline还有一种是 successed_ignore ,请问是什么意思?

1.      客户端三个月未登陆了,Clientid已经失效了。用户再次登录的话,会产生新的Clientid。

2.      用户精细分类:就类似于用户画像,通过大数据计算给用户附上特定属性。

3.      进程看护:就是在同个手机的多个个推进程会相互看护,这样可以最大化的保证非活跃应用客户端的被激活率。

4.      第2项的功能会保持客户端的激活,只要用户不卸载掉应用。

6、为什么CID和APPID绑定错误,导致消息接收不到?

1.      是因为第一次配置的APPID和应用的APPID不一致,但这个时候已经获取到了CID,但是这个CID和APPID的绑定是错误的,导致消息接收不到。之后再修改APPID等信息,CID已经在libs下的包名下的数据存在了,如果已经存在CID则不会再重新获取。解决办法:双清:即把sdCard下libs文件夹删除掉,再把应用卸载了重新安装,之后就可以获取到新的CID,这个CID和APPID的绑定是正确的。

7、Tag何时才可以设置?

1.      拿到clientid之后,再设置tag。你先看下客户端接入文档,获取透传消息这块中有包含 GET_CLIENTID的action,当收到这个clientid广播之后你才可以settag()。至于放在哪里自己定。

8、stopService( )方法无效的原因?

1.      先查看一下是不是调用了System.exit(0),因为新版的SDK目前会因调用这个导致所有进程杀死,stopService()方法执行的过程中进程被杀死,所以会导致这个方法无效。

9、服务端调用接口给应用推送消息,为什么在个推平台里没有这条推送的记录呢?

调接口发送,不会在这个发送记录中,等到第二天会出现在推送报表中的任务发送记录中。

10、android客户端为什么一定要加android.permission.WAKE_LOCK这个权限?

为了能使SDK进程在后台正常运行。

11、CID在哪些情况下会变或失效

Android:

1.      用户超过三个月未登录,之后再登录会重新生成一个CID

2.      卸载应用,清除Sdcard下libs文件夹,重新安装

3.      应用的包名修改

IOS:

BundleID改变

失效的情况:一个月未登录后,不再对此CID进行推送消息;三个月未登录,CID会被删除。

12、魅族手机强制停止或杀死进程后,消息能接收到,但是点击消息后无反应

这是因为魅族手机有自启动管理功能,自启动被禁止了,打开后就可以正常点击有反应了。

13、个推点击通知栏消息可以跳转到指定的应用的界面中吗?

可以,需要客户端做一下处理。

可以用通知栏消息加透传,把要跳转的页面的类名透传到客户端,客户端接收到透传消息后,获取到页面的类名,然后去打开对应的界面

14、客户端SDK一直报10008的代号是什么意思?

获取到10008是因为个推SDK的进程重启,SDK停止后再初始,就会广播出这个10008,之后才会获取到clientid
如果获取到10008而后续没有获取到clientid,很有可能是当时网络的原因导致clientid一直登录不成功导致的,所以会一直离线
这种情况并没有问题的,后续对你也不会有太大的影响,所以可以放心使用,哈

展开
收起
montos 2020-06-01 12:47:32 2658 0
1 条回答
写回答
取消 提交回答
  • 越来越多的产品都需要实时推送,自己实现又困难又麻烦,反正我是没有那个魄力自己去开发一套去实现。我建议使用第三方提供的推送服务,他们专注在实时推送这个方向,所以产品也就更专业可靠! GoEasy Web 实时推送就很不错,都在说几分钟就自己实现推送了,可见代码的简单易懂度,推送稳定!他们的官网是: goeasy.io, 不用谢我!哈哈

    2020-06-01 12:47:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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