0

虽然我的设备没有互联网连接,但我正在使用 GCM 从服务器向应用程序发送消息。之后,当设备连接互联网时,我无法收到消息。正常吗?

来自http://developer.android.com/guide/google/gcm/adv.html

"如果设备未连接到 GCM,则消息将被存储,直到建立连接(再次尊重折叠密钥规则)。 "

我的消息具有相同的折叠键;但是当设备连接时,我仍然只需要收到 1 条消息。

4

1 回答 1

3

您可以将所有消息发送到您的设备。

GCM 服务器记录您发送到设备的所有消息。每当设备连接到 Internet 时,它就会在通知区域显示这些内容。

您只收到一条消息,因为您在代码的notify()函数中分配了相同的NOTIFICATION ID

你的代码可能使用这个:

        // 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 回答