GCM を使用して Android アプリを開発しています。現在、クライアント側とサーバー側で標準の Google ライブラリを使用しています。2 台の Android デバイスでテストしている場合、アプリが実行されているかどうかに関係なく、両方のデバイスの電源が入っていれば GCM は正常に動作します。
ただし、デバイス A の電源がオフになっていて、デバイス B からデバイス A にメッセージを送信している場合、デバイス A がオンに戻ったときに、オフライン中に送信されたメッセージを受信しません。
collapse_key
サーバー側 (実際の送信を開始する側) では、デバイス A へのすべてのメッセージに notime_to_live
が設定されてい2000000
ます (テスト目的の場合)。実際の送信には retries パラメータが設定されています50
(GCM 自体に到達できない場合に備えて、これはほとんどありません)。
デバイスの起動時に GCM 登録手順を完了する必要がありますか? 現在、私はそうしています。
GCM ブロードキャスト レシーバーと GCMIntentService は、Google の Web サイトで説明されているように、マニフェストにパーミッションと同様に設定されていることに注意してください。
どんなアドバイスでも大歓迎です。私は本当にこの問題に行き詰まりました。