アプリケーションで Google クラウド メッセージング サービスを設定しましたが、すべてが機能しますが、アプリケーションにメッセージを送信すると、deviceId を知っているユーザーだけがメッセージを受信します。アプリを使用するすべてのデバイスにメッセージを送信するにはどうすればよいですか?
どうもありがとうございます
アプリケーションで Google クラウド メッセージング サービスを設定しましたが、すべてが機能しますが、アプリケーションにメッセージを送信すると、deviceId を知っているユーザーだけがメッセージを受信します。アプリを使用するすべてのデバイスにメッセージを送信するにはどうすればよいですか?
どうもありがとうございます
登録されていないデバイスにはメッセージを送信できません。
まず、これらのデバイスは を使用してGCMRegistrar.register
登録し、registrationId をサーバーに送信する必要があります。その後、それらのデバイスにメッセージを送信できるようになります。
final String regId = GCMRegistrar.getRegistrationId(context);
if (!regId.equals("")) {
// Device is alredy registered. This checks whether it is registered
// on the server or not.
if (!GCMRegistrar.isRegisteredOnServer(context)) {
// Save regId to server
registerInBackground(context, regId);
} else {
Log.v(TAG, "Already registered");
}
} else {
GCMRegistrar.register(context, senderId);
}
登録されていないデバイスに GCM メッセージを送信することはできません。
すべてのデバイスへのフェイル セーフ ブロードキャストが必要な場合は、アプリに定期的にプルを実行させる方がよい場合があります。バージョン番号が付いた Web サーバー上の単純なフラット json ファイルで十分ですが、本当に苦労するのは、どのくらいの頻度で、いつ、どのようにプルするかを判断することです。
デバイス上のクライアントは、デバイス上の GCM ライブラリから登録 ID を受け取ります。これは、必要な識別情報とともに、通常のチャネルを介してサーバーに送信されることになっています。サーバーは、どの RegID がどのユーザーまたはデバイスに割り当てられるかを記憶する必要があります。詳細については、http: //developer.android.com/guide/google/gcm/gs.htmlを参照してください。