c2dm消息从未收到过

时间:2012-05-01 20:03:00

标签: android android-c2dm

我很难通过c2dm接收消息。实际上我偶尔会收到来自我们服务器的消息,但实际上只有一半的数据。 (我期待一个4位数字,只收到前2位数字...... o.O“)。 然而,最近我们的广播接收器保持绝对沉因此,我开始尝试将我自己的c2dm消息推送到谷歌服务器,看看它是如何做的。

在帖子的底部,您可以找到一个示例类,我如何发送和接收c2dm消息。这一切都非常独立,所以你可以把它插入到C2dmStaticTest.autopilot( yourSenderId, "foo bar", yourServerSideAuthCode, this, this.getPackageName());

的某些活动和拍摄中

让我概述一下发生的事情:

  • 设置要在BroadcastReceiver中使用的静态变量
  • 注册广播接收器并设置动作和类别{/ 1}}的方式。
  • 向c2dm服务器发送注册意向。

注意:本地内置广播接收器将为每个接收到的意图生成一条日志消息! 每次在类中发出日志消息时,标记将为“c2dmTest”。

当收到带有registration_id的c2dm答案时,也会记录下来 然后会推送一条c2dm消息 我在这里建模我们的服务器尽可能接近以获得更多控制权。 作为一个反向测试,我还发出一个假的C2DM消息,模仿一个实际的Intent并测试广播接收器的RECEIVE动作的功能。

虽然我可以从c2dm服务器收到注册令牌但是我没有收到任何我推送到服务器的消息。正如在介绍中提到的,当我们的Web服务器发送消息时,我观察到相同的行为。

我尽我所能,我相信我已经相应地实现了广播接收器,因为消息发送的服务器响应代码总是200 / OK我也相信消息已成功传送到服务器。

然而,结果不是预期的结果,但我真的缺乏任何想法,我还能做些什么。查找“无法保证邮件传递”等段落也不令人鼓舞。我的意思是现在根本没有提供任何东西:C

androidManifest.xml

1 个答案:

答案 0 :(得分:0)

好的,向我们的服务器人员展示这一点,我了解到status code: 200仅表示通信成功,而不是数据可能存在语义错误。

在这种情况下,我实际上还收到了一个JSONObject,说明密钥不匹配的错误 这就是我所说的各级沟通问题......