4

我开始实施 GCM。

我正在使用Google 的官方教程

我在 Google 上没有发现任何关于此错误的信息。有人知道这是什么意思吗?

我从广播接收器得到它:

if (GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR.equals(messageType)) {
        sendNotification("Send error: " + intent.getExtras().toString());
        Log.i(TAG, "Send error: " + intent.getExtras().toString());


07-11 16:56:55.083: I/GCMDemo(3425): Send error: Bundle[{error=TooManyMessages, message_type=send_error, google.message_id=1}]
4

2 回答 2

2

这意味着您在设备离线时向同一设备发送了超过 100 条没有折叠密钥的消息。一旦达到该限制,GCM 服务器就会丢弃存储的消息,并TooManyMessages在设备重新联机时向设备发送错误消息。

注意:在不折叠的情况下可以存储多少消息是有限制的。该限制当前为 100。如果达到限制,则丢弃所有存储的消息。然后,当设备重新联机时,它会收到一条特殊消息,指示已达到限制。然后,应用程序可以正确处理这种情况,通常是通过请求完全同步。

于 2013-10-02T22:09:22.570 回答
0

当您尝试将消息从设备上传到 CCS 时,您会在设备上收到此消息,并且出站队列已满。由于网络不可用,此本地队列由 GCM 无法发送的消息填充。在这里,您可能已填满队列并重新启动应用程序(这就是您的 messageId 为 1 的原因)。每个应用程序保留 20 条未发送消息的限制(通过测试发现,AFAIK 未在任何地方说明)。

于 2014-03-15T01:11:35.620 回答