0

デバイスにインターネット接続がないのに、GCMを使用してサーバーからアプリケーションにメッセージを送信しています。その後、デバイスがインターネットに接続すると、メッセージが表示されません。正常ですか?

http://developer.android.com/guide/google/gcm/adv.htmlから

デバイスがGCMに接続されていない場合、メッセージは接続が確立されるまで保存されます(ここでも折りたたみキーのルールが適用されます)。

私のメッセージには同じ折りたたみキーがあります。それでも、デバイスが接続されているときにメッセージを1つだけ取得する必要があります。

4

1 に答える 1

3

デバイスに送信されたすべてのメッセージを取得できます。

GCM サーバーは、デバイスに送信されたすべてのメッセージのアカウントを保持します。デバイスがインターネットに接続されるたびに、通知領域にこれらが表示されます。

コードのnotify()関数で同じ通知IDを割り当てているため、1 つのメッセージしか取得していません

あなたのコードはおそらくこれを使用しています:

        // 0 is notification id
        notificationManager.notify(0, notification); 

通知領域にすべてのメッセージを取得するには、通知IDを毎回変更してください。

そのような :

        static int NOTIFICATION_ID = 0;

        if (NOTIFICATION_ID > 1073741824) {
            NOTIFICATION_ID = 0;
        }
        notificationManager.notify(NOTIFICATION_ID++, notification);

if 句は、int 値のオーバーフローからあなたを守ります。必要に応じて無視できます。

私はすでにこのシナリオをテストしました。今ではあなたの番です。
お力になれて、嬉しいです !!

于 2012-11-30T06:44:03.680 に答える