推送接收异常,麻烦极光技术支持确认问题所在

android
标签: #<Tag:0x00007fb83d0e08b0>

(3/4 好人 /篮球) #1

公司账号下有多个app,今天发现给其中一个app推消息的时候,其它几个app也会同时收到。用了极光的控制台测试了几条,然后在手机上看log,发现都收到了发出的通知消息。麻烦查看下是什么问题,每个app都有独立的appkey。就只有给当前这个app发消息会有这种现象,给其它app不会。

发送编号 1514447041
Message ID 2932298423


#2

1、请提供这个APP的AppKey
2、你的发送方式是什么?广播?

3、你认为本不应该收到消息的APP,他们在设备上取到的registrationID是多少?请你获取并提供。

4、如果AppKey不一样,是不可能收到的,请注意你是不是做了分组推送。


(3/4 好人 /篮球) #3

1.APPKEY ----------3c7e57d8ea1dc9cd52b2d921
2.发送方式是针对自定义tag,并且只对Android平台。(另外两个应用都在同一台手机)
4.AppKey确定不同,另外没有做分组推送。
问题是只有给这个应用(暂定为A) 发推送的时候,另外两个app应用B,C会收到,反过来,则不会。既给B或者C发同样的推送,只有该应用自己能收到。

另外需要说明的是,应用A,B,C只有包名和AppKey不同,其它代码都一样。


#4

我需要你提供你B、C应用的registrationID,请调用 api 获取一下他们的registrationID,是不同的。
https://docs.jiguang.cn/jpush/client/Android/android_api/#registrationid-api

请你确认他们是收到了这条消息,而不是因为在同一个手机上,而因为有 A 应用在,展示了这条消息。


(3/4 好人 /篮球) #5

1 非常确定都收到消息。1)手机上都显示了三条内容相同的通知 2)在项目代码receiver中的log也都有体现。毋庸置疑这一点。

2.registrationID都: A:140fe1da9ea2e976f7b B : 190e35f7e04852c983b C:160a3797c80b1de2d96

3.这个就很奇怪了。虽然是一样的,但是三个应用的表现并非可逆的。只有向A应用发消息,A,B,C都能收到,但是向B,或者C发消息,其它两个App并不能收到。同样的消息设置。

操作步骤为在极光控制台,点选某个应用,进入后,发送通知,类型为指定TAG。


#6

这条消息的目标只有 140fe1da9e9965dd7e1,与你上述提供的registrationID不一致,是否这三个设备是你后面做的测试,与之前提供的msgid不一一对应?

1、如果可以复现,请提供你现在推送的消息的msgid。

2、等这三个应用都收到后,取一下你的客户端日志信息,都提供上来。


(3/4 好人 /篮球) #7

发送编号 1514520827
Message ID 3879612933
推送方式 立即推送
接受对象 标签:{“tag”:“15858196256”}
推送内容 测试推送3
推送平台 androidlog_1229_推送异常.txt (269.0 KB)

这条测试对象的推送目标是A,但是三个应用都收到了。


#8

1、我查询这条消息下只有一个目标,只有一个下发记录,则必然走远程通道这边的,就只有 A 应用受到了消息。你其他应用的推送历史里面也没有产生同一时间的消息推送记录,则走极光服务器下发的,不可能给 B 、C发了

2、你提供的日志不全,完整的日志里面是有 你设备的AppKey、registrationID、你收到消息消息的具体内容的等等所有jiguang的信息的

3、需要看你 B、C应用收到的消息时的日志,他们是走了极光远程消息接收的方法得到的消息吗?还是走了你们自己的方法拿到的消息

4、请你们去检查自己的代码,是否写了什么代码,导致A应用接收时,将消息同步给了同一个设备的B、C应用。

5、参考他的这个问题和解决方案去检查代码。


(3/4 好人 /篮球) #9

内部没有做任何同步消息的处理。另外,多个应用,A,B,C所有代码都一样,只是包名不同,appkey不同而已。给不同公司定制的,只是换了包名和logo而已,源码都相同。所以如果内部做了转发,那么无论给那个app发消息,其它都能收,而不是只有一个app有这样的表现。


(3/4 好人 /篮球) #10

请问下定义Receiver的name属性时,如果所有应用的名字都一样有关系吗

name的名字是A应用的包名+receiver的类名。所有其它的应用,其它位置都用了各自的包名和appKey。未读这个receiver的name属性是一致的,都是A的包名+类名。这个会对上述问题产生影响吗?会到至给A发的消息,也会同时发给B,C的Receiver吗?


(3/4 好人 /篮球) #11

另外我提供的log里面很明显,我只发送了一个通知消息,可以看到,有三个推过来。


#12

不同的 App 对极光 SDK 有不同的日志,需求你提供单独的对 A 、B、C应用的日志,根据我提供的获取方法,取到他们各自的日志,看他们得到消息的时候,走的什么方法,以jiguang和jpush为tag的日志,打印出完整的消息内容,包括msgid等。

你给的一个日志,一个日志里面打印了几次消息,这我怎么知道这些消息是分属哪一个应用的?且消息的msgid也没有,如何确定这些消息的来源。

我查到的我们服务器下发的记录里面,只有对 A的推送,则走极光服务器就只下发过这么一个消息给 A。

关于你说的这个疑问,我需要咨询一下。