バックグラウンド
- 私は 1 つの Android アプリを持っています
- 私は 2 つの Google API プロジェクトを持っているので、明らかに 2 つの SENDER_ID と 2 つの API キーがあり、これらのプロジェクトは両方とも Google Cloud Messaging で有効になっています。
- インテントから EXTRAS を抽出し、インテント エクストラ バンドルの「from」キーに基づいてプロジェクトごとに異なる IntentService を生成する 1 つのブロードキャスト レシーバ。また、ComponentName を使用して IntentService が生成されます。
この「from」キーは PROJECT_ID/ SENDER_ID であり、これらに基づいて、インテントを処理する別のインテント サービスを生成します。
これを行う手順は、 https ://developer.android.com/google/gcm/client.html から学びました。
問題 アプリケーションの起動時に、それぞれの PROJECT_ID/SENDER_ID で GoogleCoudMessaging シングルトンを使用して GCM サーバーに登録する 2 つの JAVA クラスを呼び出します。
これは正常に実装され、両方の登録 ID を取得します。
しかし、これらの両方の Google プロジェクトに対してプッシュ通知を送信すると、両方のインテント エクストラを受信し、1 つはキー「from」の下に PROJECT_ID を持ち、もう 1 つはこのキーの下に null を持ちます。
問題は、2 番目に登録されたプロジェクトは常にプッシュ メッセージで PROJECT_ID を取得するのに対し、最初に登録したプロジェクトは PROJECT_ID をインテント エクストラで取得しないことです。
実装に欠けていることは明らかですか?