将GCM通知发送到脱机设备

use*_*779 9 android google-cloud-messaging

如果我向设备发送通知,并且该设备处于脱机状态,我会得到以下内容:

错误:不可用

我必须重新发送.

我的问题是:

GCM服务器是否会将这些通知保留在队列中并在设备联机时自动重新发送?或者必须由我完全处理.

因为如果GCM服务器要自动发送它们(一旦设备在线),直到它实际发送通知,我的服务器假定它们已经被发送.如何跟踪成功重新发送通知的时间?

我可能会在我的服务器端标记通过查看Unavailable error message但不能发送通知,但无法知道如何在GCM成功发送通知后将其标记为已发送.

谢谢

Kun*_*wah 11

A/c to documentation ---当第三方服务器向GCM发送消息并收回消息ID时,并不意味着消息已经传递给设备.相反,它意味着它被接受交付.消息被接受后会发生什么取决于许多因素.

如果设备已连接但空闲,则除非delay_while_idle标志设置为true,否则仍会立即传递消息.否则,它将存储在GCM服务器中,直到设备处于唤醒状态.而且这就是collapse_key标志起作用的地方:如果已经存在一条消息,其中存储了相同的折叠密钥(和注册ID)并等待传递,则旧消息将被丢弃,新消息将取代它(即,旧消息将被新消息折叠.但是,如果未设置折叠键,则会存储新旧邮件以供将来传递.

注意:如果没有折叠,可以存储的消息数量有限制.该限制当前为100.如果达到限制,则丢弃所有存储的消息.