2012-12-04 28 views
0

我正在使用Uniqush将GCM消息发送到正在开发的应用程序,到目前为止这工作得很好。但是,由于显而易见的原因,我正在开发时卸载并重新安装该应用程序,并且每次新安装都会重新注册GCM。来自Uniqush的重复的GCM消息

我明白GCM是应该自动处理:

http://developer.android.com/guide/google/gcm/adv.html#unreg

如果消息不能被传递到设备,它发送一个错误到服务器,处理它。不幸的是(即使在未安装应用程序的情况下发送测试推送消息之后),我收到了重复消息到我的设备。

这是Uniqush,我的程序,GCM还是三者的组合?

回答

0

如果在卸载应用程序时向设备发送通知,则最终将显示重复项。

0

鉴于你的描述,我无法重现你的情况。以下是试图重现它的步骤:

  • 在我的手机上安装测试应用程序,并使用uniqush将其通知给它。正确。 Uniqush的日志显示它已成功发送,我的手机显示正确的结果。
  • 卸载测试应用程序。
  • 使用uniqush再次推送另一个通知。 Uniqush的日志显示的消息称该用户退订服务:(因为它已经被删除)[Unsubscribe][Info] 2012/12/21 19:18:08 [UnsubscribeRequest] RequestId=3992a14e4987e94e3ce16bb7394ee06d2d9e7231 Success DeliveryPoint=gcm:47e6551857be173b1418e56b63dbdb8cd58c94a2
  • 然后推一个更通知装置,uniqush说,它无法找到该设备
  • 检查使用redis-cli数据库,该设备的信息不再存储。它已成功取消订阅。

但是,我确实发现了一些问题:如果您检查从HTTP的uniqush返回的错误消息,那么您将在第二次通知中看到Success。我已经在下一个版本中修复了这个错误。它很快就会上线了。 (如果您对此感兴趣,请查看.deb package

事实上,uniqush旨在处理这种情况,以便用户不需要关心取消订阅,设备令牌/注册ID更新等

如果您有任何疑问,请随时发表评论或与我联系。