Android Gcm不与ROR一起工作

Android Gcm不与ROR一起工作,android,ruby-on-rails,push-notification,google-cloud-messaging,Android,Ruby On Rails,Push Notification,Google Cloud Messaging,我阅读了实现GoogleGCM的基本示例。我开发了小型客户端android应用程序,成功地从gcm服务器上为我提供了注册id。。现在在服务器端,我使用RubyonRails,因此我们使用这个gem来实现gcm的服务器端。我将注册id传递给我的服务器。 我成功地运行了这些命令 device=Gcm::device.create(:registration\u id=>“xxxxxxxxxxxxxxxxxxxxxxxx”) notification=Gcm::notification.new not

我阅读了实现GoogleGCM的基本示例。我开发了小型客户端android应用程序,成功地从gcm服务器上为我提供了注册id。。现在在服务器端,我使用RubyonRails,因此我们使用这个gem来实现gcm的服务器端。我将注册id传递给我的服务器。 我成功地运行了这些命令

device=Gcm::device.create(:registration\u id=>“xxxxxxxxxxxxxxxxxxxxxxxx”)

notification=Gcm::notification.new

notification.device=设备

notification.collapse\u key=“更新可用”

notification.delay\u while\u idle=true

notification.data={:registration\u id=>[“RegistrationID”],:data=>{:message\u text=>“Get on cloud nine”}

通知.保存

用于传递通知:

$ rake gcm:notifications:deliver

我的rake命令运行时没有任何错误。但在完成所有这些任务后,我的设备没有收到任何消息。。我不知道背景里发生了什么。如何确认设备正确接收发送的消息。。需要帮助。。。谢谢您……

如果您在服务器端没有错误,可能是您没有正确处理Android应用程序中的事件

遵循以下准则:,并编写调试日志。

调试消息可能会很麻烦和困难

一个可能的原因是错误,必须在配置文件中定义错误。如果使用了错误的API键,则可能会从服务器
{:code=>200,:message=>nil}
获得成功响应,尽管尚未发送任何消息。在这种情况下,请转到并查找正确的键

另一个可能的原因是设备的注册ID错误。如果注册ID不正确,则可能会出现未注册无效注册错误,gcm\u on\u rails插件(目前)并不总是能够识别该错误。使用以下curl命令通过控制台调试API(插入API密钥和设备的
注册ID

调用Gcm API的成功/失败尝试应如下所示:

{"multicast_id":7961..,"success":1,"failure":0,"canonical_ids":1,
 "results":[{"registration_id":"..","message_id":"0:.."}]}

{"multicast_id":7961..,"success":0,"failure":1,"canonical_ids":0,
 "results":[{"error":"NotRegistered"}]}

最后,另一个原因是当天的密钥无效:不要在数据散列中使用像
message\u type
这样的保留字作为密钥。它将返回状态代码200,但不会发送任何通知<代码>消息类型是其中之一(我花了一个多小时才发现)。

你好,manelizzard谢谢你的回复。。。根据上面的链接,我已经获取了androidmanifest.xml中所有必需的权限。我的客户端android应用程序包含两个java文件,一个是gcminentservice.java扩展了GCMBaseIntentService,另一个是mainactivity.java。当我运行这个客户端应用程序时,它运行时没有任何错误,并且给我regId。。。但未收到来自服务器的任何通知。。。我在客户端错过的任何其他东西……我使用本教程成功实现了服务器站点部分和客户端部分,它还向我显示用户注册成功,但当我尝试向用户发送消息时,它给我错误Servlet SendAllMessagesServlet不可用这是一个服务器端错误。您是否有类
sendlmessagesservlet.java
并映射到
web.xml
?很抱歉,我错过了服务器端的本教程是为java编写的,没有为Ruby on Rails编写的。我有sendlmessagesservlet.java也映射到web.xml,但它仍然给我相同的错误。即使我创建了java类并映射到web.xml,但对于新类仍然给出了相同的错误。。。需要帮助。。。。非常感谢。
{"multicast_id":7961..,"success":1,"failure":0,"canonical_ids":1,
 "results":[{"registration_id":"..","message_id":"0:.."}]}

{"multicast_id":7961..,"success":0,"failure":1,"canonical_ids":0,
 "results":[{"error":"NotRegistered"}]}