设备未收到 GCM 消息

Device Not Receiving GCM Messages

首先,我目前无法 post 编码 info/examples 因为我目前不在拥有该编码的机器旁。如有必要,我会在明天到达那台机器时获取适当的代码片段。

设置

我正在根据 Google 的示例代码实现与本地服务器的 GCM 通信。客户端和服务器都对示例稍作修改。服务器是一个 Java 程序(同样,几乎完全来自演示代码)。

问题

目前,应用程序和服务器使用虚拟 'echo' 设置来回通信良好,这是 Google 的 GCM 通信示例代码的初始设置。

如果我转到我打算与 GCM 一起使用的自定义消息内容,我就会遇到问题。我可以发送从 GCM 驱动的应用程序中找到的消息,但出于某种原因,我没有 将消息从服​​务器返回到应用程序。

目前我正在测试通过 GCM 与 XMPP 服务器对话的应用程序的基本聊天元素。因此,我可以连接到 XMPP 服务器 w/Pidgin 并查看从应用程序中传出的消息,当我向回发送消息时,它们会被发送到 GCM 服务,但永远不会从应用程序中传出。

Confusions/Questions/Clarifications

目前,我从我的服务器发送回 GCM 应用程序的消息包含以下字段,据我所知,只有其中三个字段是必需的(除 delay_while_idle 以外的所有字段?):

非常感谢任何帮助。如果您觉得某些代码片段很重要,请让我知道您希望看到什么。

好的,所以我原来的 post 中没有这个信息,但今天早上经过更多调试后我发现了问题。

在我要沿路径服务器->GCM->设备发送的自定义消息的打包中,我错误地放入了 key/value 对 "data":"{JSON字典}”而不是 "data":{JSON 字典},并且缺少 GCM 服务发回的错误,指示 JSON 格式错误。

对于任何对此感到困惑的人,GCM 消息中 "data" 键的值必须是字典,而不是字典的字符串形式(我的无意错误,自动驾驶仪手指失败)。