部分手机可以接收到推送,部分手机接收不到推送消息

android
收不到消息
标签: #<Tag:0x00007fb83c4bcf48> #<Tag:0x00007fb83c4bce08>

(Ray丶翀) #1

下载官网demo,单独运行demo在有问题的机型上都可以正常接收自定义消息和notification的推送,但是按照官网的步骤集成在自己的项目中,广播都可以接收到,但是部分客户端接收不到自定义推送消息以及notification的情况(三星s7 edg,华为 honor 8 lite),部分机型可以正常接收推送消息(魅族,红米,小米)。仔细核对集成和官方要求步骤不存在差异,自己项目中也添加了对应的混淆忽略。


(Ray丶翀) #2

但是接收不到推送的客户端init的时候会出现以上异常,请问我该如何处理?


(Ray丶翀) #3

推送registrationId是140fe1da9e9f609cbc9


#4

收不到消息的问题:请提供推送的消息的msgid(MessageID)和收不到这条消息的设备的registrationID(在客户端获取,无论以何种方式做推送,该信息必须提供)
信息如何获取: 极光产品相关提问简要说明

排查


(Ray丶翀) #7

msgid:1457926507
registrationId:140fe1da9e9f609cbc9


#8

查询结果:当前App不在线

请检查你的长连接状态,是否有调用stoppush等
https://docs.jiguang.cn/jpush/client/Android/android_api/#_140


(Ray丶翀) #10

getConnectionState 返回true
isPushStopped 返回 false


#11

给我提供完整的客户端日志,用jiguang筛选日志
正常连接状态下不会出现消息不发下去的情况
切换网络试一下,检查通知栏提醒

部分手机Notification没展示,有可能是消息盒子导致的


(Ray丶翀) #14

这是第一次安装app的时候的极光日志


这是第二次重新安装,打开app的极光日志

当前后台发送了一条推送数据:
msgid:2665634529
registrationId:140fe1da9e9f609cbc9
依旧未进入Receiver方法,对应的问题以及相关我已经排查过,头次遇见这种现象,麻烦帮忙告知一下如何解决。当前的项目不做任何改动,在我另外两台测试设备上接收服务端手动发起的通知没有任何问题。我并不需要Notification的功能,只是作为排查自己做了测试,发现该设备只能接受到广播,我需要的是接收自己后台发送的自定义消息。


(Ray丶翀) #15

我已经让设备从wifi网络切换到了移动网络来进行测试,之前也已经尝试过,未有不同,依然没有接收到自定义消息,自定义消息也从自己后台手动发送,到极光官网上手动发送都测试过,结果一样!


#16

你这里日志显示的stoppush返回不都是true吗?先调用resumepush看下结果


(Ray丶翀) #18

没有这里是我自己提示写错了,返回的是false,也就是没有停止推送!在之前为了排除init初始化注册失败的情况下, 我在入口的acitivity已经添加了代码resumePush了。


(Ray丶翀) #19

我当前给你的registrationid的测试设备是华为honor 8


#20

根据你这边自己的测试和我用 demo测试,基本上 是你这个测试机上有点问题

你现在推送的这个registrationID真的是你现在给我截图 集成的手机的ID吗?重新调用API获取一下!

我这里查到的UID和你日志里面的ID是不一致的


(Ray丶翀) #22

哈哈多谢你我算是发现问题了,我之前的registrationid是用你们官网下下来的example获取的registrationid为主来测试的,并没有在实际的app里面来获取当前设备的registrationid,但是我刚刚按照你说的写代码日志输出了一下,发现集成在我app内部的同一台设备和下载的官网example生成的registrationid竟然是不一样的????这个我一直以为同一台设备的registrationId应该是一样的,而且其他的设备也是用的example的registrationId推送的可以获取到,这里可以请问您,你们当前产品的Registraitionid到底是个怎么个规则吗?和什么相关?其次这里我也想请教一下您,是为什么,这是我第一次安装app时候的logger输出:


这这个输出里面,Registrationid是空的,为啥,第二次再次进入就正常获取到了。为啥?


#23

规则

不知道你是不是包名什么的有改动还是怎样导致了ID不一样,一般情况一个设备上的一个App的ID不会改变

要先集成成功,后调用API获取才行


(Ray丶翀) #24

包名什么的没有改动!所以不知道为什么id会不一致,当前你们的demo却init成功不了了,哈哈我还想核对一下registrationid来着,反正当前app可以正常推送就ok了~Thanks


#25

:joy:好吧,这个,如果你是卸载了自己的项目 重新安装demo的话,先点一下resume push,也可能是不小心点到了stoppush的缘故