0

電話番号のデータベースを持つ Ruby on Rails アプリを実行しています。Railsサーバーから電話番号で通知を受け取るように、5つの異なる電話でアプリを実行する必要があります(これは次々に行われ、すべての電話が一緒に番号を取得するわけではありません)。電話番号を受信すると、アプリは既存の通話があるかどうかを確認します。電話がない場合は番号をダイヤルし、それ以外の場合は「電話中」ステータスをRailsサーバーに送り返します。

これを行う方法を考えていました。私はその App 部分を理解しました。Call Intent を使用して新しいアクティビティを開始し、マニフェスト ファイルに適切なアクセス許可を設定しました。Telephony Manager を使用してステータスを確認することもできます。

しかし、私はコミュニケーションの部分を理解することができません。私は最初に GCM を使用したプッシュ通知について考え、次にサーバーからアプリへの独立した TCP 接続について読みました。

私の質問は次のとおりです。GCM を使用することが必須なのか、それともリアルタイム通信で回避できるのかを明確にすることができませんか? はいの場合、どのように?

PS: サーバー上の DB に電話番号が追加されたらすぐに、通知を送信したいと考えています。リアルタイムで。

編集 22/03/13:

そこで、GCM を試し、Android アプリと Rails サーバーを構築しました。「gcm」gem を使用して、ほぼリアルタイムでプッシュ通知を送信できます。

アプリ部分からの応答を把握する必要があります。通話の成功/失敗の通知で番号を確認する必要があります。可能であれば、どうすればGCMでそれを行うことができますか?

4

2 に答える 2

0

結局、Google Cloud Messaging を使用することになりました。完全に信頼できるわけではなく、特定の Android 携帯ではうまく動作しませんが、動作する携帯を見つけ、私の使用例ではすべて適合しました。

GCM 経由でアプリに番号をプッシュすると、アプリはダイヤル インテントを使用して電話をかけます。また、ダイヤルすると、非同期ポストを介してサーバー上の電話と通話のステータスも更新されます。このために PhoneStateListener を実装しました。

また、github の「gcm」gem を使用すると、gcm メッセージの応答が正しくないことに気付きました。多くの場合、メッセージが配信されないにもかかわらず、応答が「成功」であると表示されます。これが、GCM が信頼できないもう 1 つの理由です。

于 2013-04-22T07:18:49.010 に答える