error = TooManyMessages GCM

时间:2013-07-11 15:00:19

标签: android push-notification google-cloud-messaging

我开始实施GCM。

我正在使用official tutorial by Google

我在谷歌上发现了这个错误。有人知道它意味着什么吗?

我是从BroadcastReceiver获得的:

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}]

2 个答案:

答案 0 :(得分:2)

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

  

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

答案 1 :(得分:0)

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