デバイスが GCM からメッセージを受信できなくなったかどうかをサーバーに知らせたいです。たとえば、電話がシャットダウンしたときや、GCMBaseIntentService
が殺されたときなどです。これは可能ですか?
質問する
1782 次
2 に答える
1
できることの 1 つは、アプリからログアウトしたときに GCM サービスをサーバーから登録解除することです。サーバーがプッシュ通知をデバイスに送信した場合、デバイスが受信しないようにします。アプリに再度ログインするたびに、デバイスをサーバーに再度登録する必要があります。
次のコードでGCMサービスを登録および登録解除することはできません:
登録:
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals("")) {
GCMRegistrar.register(this, SENDER_ID);
} else {
Log.v(TAG, "Already registered");
}
registerReceiver(mHandleMessageReceiver,
new IntentFilter(DISPLAY_MESSAGE_ACTION));
登録解除:
OnDestroy メソッドに次のコードを記述します。
unregisterReceiver(mHandleMessageReceiver);
GCMRegistrar.onDestroy(this);
これに関してご不明な点がございましたら、お知らせください。喜んでお手伝いさせていただきます。
于 2012-07-26T07:22:02.607 に答える
1
GCM は、TTL で指定されたとおりにお客様の情報を保持します。GCM はブロードキャスト サービスです。つまり、デバイスがメッセージを受信したかどうかを知る必要はありません。
できることの 1 つは、プッシュ メッセージを追跡することです。アプリケーションが起動すると、最後に受信したメッセージを送信してサーバーに確認します。
デバイスがオンでオンラインであっても、GCM からのメッセージを受信できる保証はありません。
于 2012-07-24T11:20:54.930 に答える