我已经构建了Android应用程序(尚未在Market中),我正在努力弄清楚为什么C2DM会失败。我能够注册我的设备,并且我收到了注册ID。
我构建了一个服务器应用程序,将请求提交给谷歌的C2DM服务器,我收到了200响应和消息ID。 (成功)。问题是,我的设备永远不会收到消息。
让我感到惊讶的一件事是,如果我尝试在几秒钟内注册一次设备,我就会获得不同的注册ID。他们很可能将时间用作种子。
此注册ID经常更改是否正常?任何线索/建议(我已阅读指南)?
干杯...
注意: 我没有SIM卡,我使用的只是企业WiFi网络。我最后的希望是,我的网络可能已关闭端口5228。
答案 0 :(得分:2)
因此,作为一个黄金法则,“只要你得到它就会用最新的c2dm注册ID更新服务器”
如果Google回复200,则正文应包含ID。如果有错误,则正文中会有错误。错误代码如下。
答案 1 :(得分:1)
是的,正如Rihan所说,每次您注册设备时,您都会获得一个新的registration ID
。如果您获得registration ID
,那么您的c2dm已成功通过Google服务器实施。现在您必须发送此信息您的服务器的ID。通过使用此ID,您可以向设备发送推送通知。
现在您将在C2DReceiver的OnReceive()方法中收到消息,您必须处理此消息(可以向用户发送通知)
答案 2 :(得分:1)
问题是端口5228在我使用的网络上关闭了。
答案 3 :(得分:0)
我有类似的问题,问题是在应用程序中我没有发送用于注册C2DM消息的正确电子邮件地址。所以它一直在失败。
因此,当从设备注册C2DM时,请检查您是否发送了正确的电子邮件地址作为发件人电子邮件地址,该设备是向谷歌注册的用于推送通知的电子邮件地址。
答案 4 :(得分:0)
虽然Rihan是正确的。注册ID每次都会更改。我没有收到消息的原因是因为端口被锁定了。
对于其他googlers,请确保在发疯之前5228已经开放...