GCM通知重复问题。多次收到相同的消息

时间:2016-02-20 05:08:24

标签: android google-cloud-messaging registration

我注意到处理GCM时遇到了一个问题。如果您卸载应用程序并再次安装,则会更改该设备的GCM注册ID。以前的注册ID仍然有效。所以在我的数据库中有多个注册ID,它们指的是一个设备。因此,只能在设备上多次发送一个通知。

请帮我解决这个问题。

3 个答案:

答案 0 :(得分:1)

您可以使用 canonical_id 来解决此问题, canonical_id 是调用发送推送消息时GCM响应的一部分。 Canonical Id可用于检测重复的寄存器ID,您可以使用它来防止出现问题。

您还可以在以下链接中阅读更多相关信息

1- How to get Canonical Id from GCM ?

2- How to resolve the GCM duplicate messages problem ?

答案 1 :(得分:0)

如果您可以通过loginid以某种方式跟踪同一用户,则可以删除存储在您数据库中的以前的GCM ID,同时为同一用户或设备插入新的GCM ID。

答案 2 :(得分:0)

正如GCM指南中所述

  

请注意,Google可能会定期刷新注册ID,因此您应该设计Android应用程序,并了解可能会多次调用com.google.android.c2dm.intent.REGISTRATION意图。您的Android应用程序需要能够做出相应的响应。

您可以替换数据库中的旧GCM,而不是保留重复副本,因为多个注册ID是多次推送通知的原因。