Google Cloud Messaging 是不是会向处于待机模式的设备发送消息?
Posted
技术标签:
【中文标题】Google Cloud Messaging 是不是会向处于待机模式的设备发送消息?【英文标题】:Does Google Cloud Messaging send messages to devices that are in standby mode?Google Cloud Messaging 是否会向处于待机模式的设备发送消息? 【发布时间】:2013-05-31 05:17:18 【问题描述】:如果 android 设备处于屏幕关闭的待机模式,Google Cloud Messaging 是否可以向该设备发送消息?还是 GCM 必须等到设备退出待机模式才能接收消息?
在文档中指出:
Google 将消息排入队列并存储,以防设备离线。 当设备在线时,Google 会将消息发送到设备。
没有说明离线或在线是什么意思。即使屏幕关闭,设备是否仍然在线?
【问题讨论】:
【参考方案1】:是的手机可以在待机模式下接收消息,除非它连接到互联网。
在他们的文档中,online
表示连接到 internet
,offline
表示未连接到 internet
。
【讨论】:
我能够确认即使屏幕关闭设备也会收到消息。它甚至可以及时收到它,几乎没有延迟。【参考方案2】:您可以使用delay_while_idle
标志控制是否将消息发送到处于待机模式的设备。如果您的消息中不包含此标志,则默认值为 false,消息将立即发送。当然,该消息是否会唤醒设备取决于您的代码如何处理通知以及您的应用是否具有WAKE_LOCK
权限。
delay_while_idle
如果包含,则表示如果设备空闲,则不应立即发送消息。服务器将等待设备变为活动状态,然后只发送每个 collapse_key 值的最后一条消息。选修的。默认值为 false,并且必须是 JSON 布尔值。
【讨论】:
以上是关于Google Cloud Messaging 是不是会向处于待机模式的设备发送消息?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Chrome 中实现 Google Cloud Messaging - Topic Messaging?
Google Cloud Messaging VS Google Cloud Platform
GCM(Google Cloud Messaging)推送完全解析