有时无法在移动设备中接收推送通知GCM

ARI*_*JIT 7 android push-notification google-cloud-messaging

我面临一个奇怪的问题.我在我的手机上收到推送通知,如果它已从服务器端发送消息时连接到互联网.但如果当时它没有连接到互联网,而是我在一段时间后连接到互联网.我没有收到通知.根据我的知识,所有这些通知都应该在我们在线时显示,因为GCM服务器存储所有这些消息.我收到了所有其他应用的通知.我也在清单中给予了wakelock许可.可能是什么问题?从服务器端,客户端还是移动设备?请帮忙...

此值从第三方服务器(.Net服务器)发送到GCM服务器:

String postdata= "collapse_key=score_update&time_to_live=2419200&delay_while_idle=1&data.message=??" + 
message + "&data.time=" + System.DateTime.Now.ToString() + "&registration_id=" + deviceToken + ""
Run Code Online (Sandbox Code Playgroud)

提前致谢

Era*_*ran 10

delay_while_idle=1 相矛盾 Also I have given wakelock permission in manifest

delay_while_idle=1表示如果消息处于空闲状态(关闭,离线,锁定屏幕等),则消息将无法到达设备.如果您希望获得wakelock许可,请将其更改为0.

只是为了澄清 - 消息应该在它停止空闲后到达设备(只要它没有闲置太长时间,其中"太长"由指定的确定time_to_live).

以下是GCM文档的相关引用:

delay_while_idle

如果包含,则表示如果设备空闲,则不应立即发送消息.服务器将等待设备变为活动状态,然后仅发送每个collapse_key值的最后一条消息.可选的.默认值为false,并且必须是JSON布尔值.

time_to_live

如果设备处于脱机状态,则应在GCM存储上保留多长时间(以秒为单位).可选(默认生存时间为4周,必须设置为JSON号码).