2012-01-24 16 views
0

私はC2DMを使用する私のAndroidアプリケーションのサーバー側を書こうとしています。私はそれをPHPで書くつもりです。私は基本的に今のところテストをしています。私は実際のアンドロイドアプリの携帯電話の例にクロムをコピーし、私の好みにそれを修正しました。今私の最大の疑問は登録です。C2DMとPHPサーバ

すべてをまっすぐにしましょう。

初めてデバイスを登録するとき、アプリは自分のサーバーに直接話します。サーバーはdeviceidをつかみ、200で応答します。そうですか?

したがって、php側では、$ deviceid = $ _POST ['deviceId']のようなデバイスIDを取得します。 自分のデータベースに追加します。アプリに返信する..特定の返信をどのくらい正確に送り返すのですか?私はヘッダ内にあると思いますか?私はそれをどうやって行うのか分かりません。

私が正しい道を歩いていることを確認し、拒否して混乱を解消してください。

ありがとうございました。

答えて

3

あなたはアプリに返信しません。サーバー認証トークンを取得するには、サーバーをGoogleのサーバーに登録する必要があります。そのサーバートークンとデバイストークンをGoogleのC2DMサービスへのポストリクエストで使用して、Googleのサーバーがプッシュ通知を電話に送信するようにします。プッシュ通知がC2DMで送信されたときに、アプリとサーバーは決して直接通信することはありません。すべてがGoogleを通じて行われますが、メッセージを送信するデバイスのデバイスIDをサーバーが把握するメカニズムを実装する必要があります。

サーバー・コードは、Javaであるが、これは、かなり詳細なガイドです: www.vogella.de/articles/AndroidCloudToDeviceMessaging/article.html

+0

私はプッシュ通知を送信している間は理解していますが、それが起こる前のことを意味します...私のアプリが「こんにちは、私は後で通知を受け取りたいです。 – bwoogie

+0

あなたのアプリでデバイスIDを取得したとします。それで?それはあなた次第です。サーバーがデバイスIDを取得する方法を実装する必要があります。どうにかして、アプリはあなたのサーバにデバイスIDと必要なその他の情報(例えば、そのデバイスIDがどのアカウントに関連付けられているか)を伝える必要があります。これはすべてオープンエンドであり、あなたが処理する必要があります。デバイスIDを渡すには、アプリケーションエンドポイントとサーバーエンドポイントの両方を実装する必要があります。これはしばしば投稿要求で行われます。繰り返しますが、私が提示したリンクは良い例です。 – onit

+0

ありがとう、知りたいことがあります。 – bwoogie

0

はあなたが本当にサーバーに送信する前にIDを得ていることを確認してください。テストにエミュレータを使用している場合は、phpスクリプトでechoを実行すると、logcatにメッセージが表示されます。

Googleは期限切れの登録IDを更新して、アプリケーションがGoogleから新しい通知/ IDを取得し、データベースに送信してメッセージを処理できるようにします。

関連する問題