Android 怠速后未收到GCM
如果手机连接到网络,我的应用程序会立即接收GCM消息。但当用户关闭网络并在长时间间隔(约2小时)后重新连接时,设备不会收到消息 我没有添加TTL,所以假设是4周 正在发送的示例消息:Android 怠速后未收到GCM,android,google-cloud-messaging,Android,Google Cloud Messaging,如果手机连接到网络,我的应用程序会立即接收GCM消息。但当用户关闭网络并在长时间间隔(约2小时)后重新连接时,设备不会收到消息 我没有添加TTL,所以假设是4周 正在发送的示例消息: { "registration_ids":["APA9xxx........."], "delay_while_idle":false, "collapse_key":"New Message", "restricted_package_name":"com.sample
{
"registration_ids":["APA9xxx........."],
"delay_while_idle":false,
"collapse_key":"New Message",
"restricted_package_name":"com.sample.gcm",
"data":{
"app":2,
"product":"message",
"notif":"03lm9h"
}
}
我是否遗漏了一些东西?在交货延迟的情况下,如何使其发挥作用
请给我指出可以帮助我解决这个问题的链接
提前感谢。您在空闲时延迟应该是真的,从 如果设备已连接但处于空闲状态,则消息仍将立即发送,除非将delay_while_idle标志设置为true。否则,它将存储在GCM服务器中,直到设备唤醒。这就是collapse_key标志发挥作用的地方:如果已经有一条具有相同折叠密钥(和注册ID)的消息存储并等待传递,旧消息将被丢弃,新消息将取代它(也就是说,旧消息将被新消息折叠) 您使用的是可折叠密钥,因此当设备空闲时,GCM服务器上将只保留一个密钥 在守则中:
Message message = new Message.Builder()
.delayWhileIdle(true)
//..
您在空闲时延迟,从 如果设备已连接但处于空闲状态,则消息仍将立即发送,除非将delay_while_idle标志设置为true。否则,它将存储在GCM服务器中,直到设备唤醒。这就是collapse_key标志发挥作用的地方:如果已经有一条具有相同折叠密钥(和注册ID)的消息存储并等待传递,旧消息将被丢弃,新消息将取代它(也就是说,旧消息将被新消息折叠) 您使用的是可折叠密钥,因此当设备空闲时,GCM服务器上将只保留一个密钥 在守则中:
Message message = new Message.Builder()
.delayWhileIdle(true)
//..
只是添加了一条注释,说明GCM和FCM现在都正式不推荐使用
delay\u while\u idle
参数。请参阅。只是添加了一条注释,说明GCM和FCM现在都正式不推荐使用delay\u while\u idle
参数。看。