0

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

我在想办法做到这一点。我弄清楚了它的应用程序部分:我使用呼叫意图启动了一个新活动,并在我的清单文件中设置了适当的权限,我还可以使用电话管理器检查状态。

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

我的问题是:我不清楚使用 GCM 是否是强制性的,或者我可以通过实时通信解决它?如果是,如何?

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

编辑 22/03/13:

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

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

4

2 回答 2

0

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

如果您想将它添加到数据库中,那很好,如果您想在基于 Web 的界面上添加通知,那就完全不同了。使用 Web Sockets 或 Socket IO

于 2013-04-02T08:35:25.537 回答
0

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

我通过 GCM 将一个号码推送到应用程序,然后应用程序使用拨号意图拨打电话。此外,在拨号时,它还会通过异步帖子更新服务器上的电话和呼叫状态。我为此实现了一个 PhoneStateListener。

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

于 2013-04-22T07:18:49.010 回答