3

以下を使用して登録 ID を取得しました。

String regid = (GoogleCloudMessaging.getInstance(this)).register("My_Sender_ID");

サーバーのデータベースに保存しました。後でアプリケーションがアンインストールされ、メッセージを送信しようとすると、データベースから対応する ID を削除するのを見て、 NotRegisteredエラー メッセージが表示されることが予想されました。

しかし問題は、他の成功例と同じように、まだmessage_idが返されることです。もう少しテストしたかったので、1 時間待ったところ、適切なメッセージが表示されました。

[error] => NotRegistered

それで、この遅延は予想されますか?

ありがとうございました

4

2 に答える 2

0

これにさらに詳細を追加すると、Eran の答えは正しいのですが、NotRegistered 応答の生成を何度も試みた後、アプリがまだデバイスにインストールされているかのように messageId が返されることがわかりました。time_to_live フィールドが問題の一部であることを説明するこのメッセージを Google グループで見つけました。どうやらデフォルトの time_to_live 値は 4 週間であるため、NotRegistered の応答をかなり待つことができます。time_to_live を 90 秒に設定すると、2 回目の試行で NotRegistered 応答を受け取りました。これを理解しようとしていたときにかなりの頭痛の種になったので、これが誰かの助けになることを願っています。

time_to_live をメッセージに追加する方法を詳しく説明している GCM メッセージ形式の詳細については、Google GCM ドキュメント サイトを参照してください。

于 2015-02-05T16:53:45.753 に答える