android - 没有工作数据连接的谷歌云消息传递

标签 android google-cloud-messaging

Google Cloud Messaging 能否向能够接收语音调用和短信但出于某种原因目前无法正常工作的数据连接的手机发送具有“零字节负载”的通知?

所谓“零字节”,我的意思是手机会意识到特定发件人向它发送了没有有效载荷的 GCM 通知,并可能会为此目的发出 Intent 。

现实世界的例子:一个防盗警报器被触发,并向房主发送两条推送消息——一条零字节消息,其含义完全从它被发送的事实中隐含,暗示“坏事正在发生“,并且即使在数据连接被阻止或不可用时也可以(大概)被传送,因为它(大概)骑在用于 SMS 的同一传输层上,并且在几秒钟后发送更长的推送通知,其中包含有关该情况的其他元信息这可能仅在当前存在有效数据连接时才有效(因此可以通知手机,并在建立常规数据 session 后从服务器获取有效负载)。

我读过 Google 的文档,但他们似乎故意向后弯腰,只字不提 GCM 的物理传输层。

最佳答案

对此我不得不说“不”,因为 GCM(以及几乎所有 Google 所做的事情)都是基于 TCP/UDP/IP 的,如果您的手机没有 Activity 数据 (3G/4G/WiFi) 连接。

由于电话没有 IP 地址,因此 GCM 无法传递消息。

来自 GCM Architectural Overview :

  • 它使用现有的 Google 服务连接。

关于android - 没有工作数据连接的谷歌云消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14859604/

相关文章:

java - Google Now 的自定义命令

android - 无论哪个 Activity 或服务首先在 android 中运行,如何始终在 android 中运行某些代码?

java - 如何使用 Java GCM API 在 Android 设备上获取失败推送通知的注册 ID

android - android 可以在 GCM 和 C2DM 上工作吗?

android - 将地理编码器地址缩小到仅城市

android - 以编程方式从 String[] 添加按钮

安卓对话框 : Removing title bar

android - 错误 : Execution failed for task ':app:processDebugGoogleServices' . > 找不到包名称 'com.xx.xxx.xxxx' 的匹配客户端

php - 我们如何从 PHP 服务器向数千台设备(注册 ID)发送推送通知

Android GCM - 没有获得注册 token