通过Rails Server与Android App通信 - 将数据从app发送到服务器?

时间:2013-03-21 04:48:06

标签: android ruby-on-rails tcp push-notification

我有一个运行Ruby on Rails的应用程序,它有一个电话号码数据库。我需要在5个不同的手机上运行应用程序,以便他们从Rails服务器收到一个带有电话号码的通知(这是一个接一个地完成的,并非所有手机都能得到这个号码)。收到电话号码后,应用程序会检查是否有现有的电话。如果没有呼叫,则拨打该号码,否则将“电话忙”状态发送回Rails服务器。

我在考虑如何做到这一点。我找到了应用程序的一部分:我使用Call Intent启动一个新的Activity并在我的清单文件中设置了相应的权限,我也可以使用Telephony Manager检查状态。

但我无法找出通讯部分。我首先想到了使用GCM的推送通知,然后我甚至读到了从我的服务器到我的应用程序的独立TCP连接。

我的问题是:我无法弄清楚使用GCM是否是强制性的,或者我可以通过实时通信来解决它?如果是,怎么样?

PS:一旦将电话号码添加到服务器上的数据库,我就希望发送通知。实时。

编辑22/03/13:

所以我尝试了GCM并构建了我的Android App和Rails服务器。我可以使用'gcm'gem几乎实时发送推送通知。

我需要弄清楚应用部分的响应。我需要通过呼叫成功/失败通知来确认号码。如果可以的话,我怎么能在GCM上做到这一点?

2 个答案:

答案 0 :(得分:0)

我无法理解你的问题。为什么不能简单地创建一个事件来添加数字并调用ROR的API并发送成功/失败通知状态。

如果你想在数据库中添加它,那就好了,如果你想在基于Web的界面上添加一个完全不同的故事的通知。使用Web套接字或套接字IO

答案 1 :(得分:0)

我最终使用了Google Cloud Messaging。它不是完全可靠,并且不适用于某些Android手机,但是,我找到了一款适用于它的手机,而且我的用例都适合它。

我通过GCM将数字推送到应用程序,然后应用程序使用拨号意图拨打电话。此外,拨号时还可以通过异步发布更新手机和呼叫服务器上的状态。我为此实现了一个PhoneStateListener。

同样在使用github的'gcm'gem时,我意识到gcm消息的响应不正确。很多时候,它表示即使没有传递消息,响应也是“成功”。这是GCM不可靠的另一个原因。