1

デバイスが GCM からメッセージを受信できなくなったかどうかをサーバーに知らせたいです。たとえば、電話がシャットダウンしたときや、GCMBaseIntentServiceが殺されたときなどです。これは可能ですか?

4

2 に答える 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 に答える