0

私はAndroidアプリを作成しましたが(まだ市場には出ていません)、C2DMが失敗する理由を理解するのに苦労しています。デバイスを登録でき、登録IDが返されます。

GoogleのC2DMサーバーにリクエストを送信するサーバーアプリを作成しましたが、200の応答とメッセージIDが返されます。(成功)。問題は、私のデバイスがメッセージを受け取らないことです。

私が驚いたことの1つは、数秒以内にデバイスを2回登録しようとすると、別の登録IDが返されることです。ほとんどの場合、彼らは時間を種として使用します。

この登録IDが頻繁に変更されるのは正常ですか?手がかり/アドバイス(私はすでにガイドラインを読んでいます)?

乾杯...

注:私はSIMカードを持っておらず、使用しているのは企業のWiFiネットワークだけです。私の最後の望みは、おそらくポート5228が私のネットワークで閉じられていることです。

4

5 に答える 5

2

グーグルはC2DMがいつでも変わると言います。したがって、デバイスの正しい登録IDでサーバーを更新する必要があります。IDサーバーがGoogleがデバイスに送信したものと一致しない場合、プッシュを配信できません。

したがって、ゴールデンルールとして、「サーバーを取得したらすぐに、常に最新のc2dm登録IDでサーバーを更新してください」

Googleが200で応答する場合、本文にはIDが含まれている必要があります。エラーがあると、本体にエラーが発生します。エラーコードを以下に示します。

  • QuotaExceeded —送信者から送信されたメッセージが多すぎます。しばらくしてから再試行してください。
  • DeviceQuotaExceeded —送信者から特定のデバイスに送信されたメッセージが多すぎます。しばらくしてから再試行してください。
  • MissingRegistration —registration_idがありません。送信者は常にregistration_idをリクエストに追加する必要があります。
  • InvalidRegistration —不正なregistration_id。送信者はこのregistration_idを削除する必要があります。
  • MismatchSenderId — register_idに含まれるsender_idが、C2DMサーバーへの登録に使用される送信者IDと一致しません。
  • NotRegistered —ユーザーがアプリケーションをアンインストールしたか、通知をオフにしました。送信者は、このデバイスへのメッセージの送信を停止し、registration_idを削除する必要があります。クライアントは、通知を再度受信するためにc2dmサーバーに再登録する必要があります。
  • MessageTooBig —メッセージのペイロードが大きすぎます。制限を参照してください。メッセージのサイズを小さくしてください。
  • MissingCollapseKey —折りたたみキーが必要です。リクエストに折りたたみキーを含めます。

この情報はhttp://code.google.com/android/c2dm/#testingからのものです

于 2011-12-22T10:55:55.897 に答える
1

はい、Rihanが言ったように、デバイスを登録するたびに新しいregistration IDものが取得 registration IDされます。また、c2dmがGoogleサーバーから正常に実装されている場合は、このIDをサーバーに送信する必要があります。このIDを使用すると、送信されます。デバイスに通知をプッシュします。

これで、C2DReceiverのOnReceive()メソッドでメッセージを取得し、このメッセージを処理する必要があります(ユーザーに通知を送信できますか)

于 2011-12-22T11:43:13.073 に答える
1

問題は、私が使用していたネットワークでポート5228が閉じられていたことです。

于 2011-12-27T23:03:57.677 に答える
0

リハンは正しいですが。登録IDは毎回変更されます。メッセージが表示されなかったのは、ポートがロックされていたためです。

他のグーグルの場合は、気が狂う前に5228が開いていることを確認してください...

于 2011-12-22T21:29:23.420 に答える
0

同様の問題がありました。問題は、C2DMメッセージングの登録に使用した正しいメールアドレスを送信していなかったアプリにありました。それで失敗し続けました。

そのため、プッシュ通知用にgoogleに登録されているメールアドレスであるデバイスからC2DMに登録するときに、送信者のメールアドレスとして正しいメールアドレスを送信しているかどうかを確認してください。

于 2011-12-22T10:37:28.990 に答える