在极光平台发的推送,android收到的NOTIFICATION_ID一直为null

android
标签: #<Tag:0x00007fb84d470dd0>

(617) #1

在极光平台发的推送,android收到的NOTIFICATION_ID一直为null.
官方文档中JPushInterface.EXTRA_NOTIFICATION_ID显示:

JPushInterface.EXTRA_NOTIFICATION_ID
SDK 1.3.5 以上版本支持。
通知栏的Notification ID,可以用于清除Notification
如果服务端内容(alert)字段为空,则notification id 为0
Bundle bundle = intent.getExtras();
int notificationId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);

然后我尝试用MSG_ID去NotificationManager.cancel,竟然成功关闭了指定通知栏,我想问这事BUG,还是官方文档没有更新,以后会不会更改。


#2

你是用的原生SDK还是某个插件?具体版本号多少?

你的问题是:NotificationID一直是null,而调用API去清除通知栏消息时,传msgid,却清除了这个通知消息是吗?(´・_・`)

将你的客户端日志提供出来一下


(617) #3

原声SDK,具体版本号:
jpush : “3.0.3”,
jcore : “1.1.1”.


(617) #4

客户端日志包括什么?


#5

看一下你收到消息时的日志、获取NotificationID为null、用msgid,调用API:clearNotificationById可以清除通知栏的这些日志


(617) #6
JIGUANG-JCore: [HttpHelper] status code:200
D/JIGUANG-JCore: [HttpHelper] status code:200
D/JIGUANG-JCore: [NetworkingClient] Received bytes - len:292, connection:547966676992, pkg:com.yunlix.wuyeapp
D/JIGUANG-JPush: [JPushDataAction] response:[MessagePush] - msgType:0, msgId:1947164833, msgContent:com.yunlix.wuyeapp
                 a51bcd0c5e67587967cc69fe
                 {"n_builder_id":0,"ad_id":"1947164833","n_only":1,"m_content":{"n_content":"5","n_style":0,"n_extras":{},"ad_t":0,"n_priority":0,"n_alert_type":7,"n_title":"","n_category":"","n_flag":1},"show_type":4} - JResponse{code=0}
D/JIGUANG-JCore: [NetworkingClient] Network listening...
D/JIGUANG-JPush: [NotificationHelper] running flag:true
D/JIGUANG-JPush: [NotificationHelper] Send push received broadcast to developer defined receiver


#7

你的获取方法是不是有所不对?

这里有警告String和int类型


(617) #8

原来如此,我看其他的都是getString,没主要到时int


(617) #9

可以了,多谢。MSG_ID<Integer.MAX_VALUE时,竟然可以成功关闭指定通知栏,是巧合吗?


#10

这个我还没弄明白你调用的是哪个接口做的什么操作


(617) #11

没事了,我直接用系统服务的NotificationManager的cancel方法,看了你上面的回复,才想起还有个JPushInterface.clearNotificationById()