我正在尝试从 C2DM 迁移到 GCM,它大多工作得很好。C2DM 过去通过在用户卸载应用程序时发送 NotRegistered 错误来很好地处理应用程序的卸载。GCM 也应该这样做(尽管不能保证)。但是,它似乎不起作用。在向已卸载该应用程序的手机发送多个 GCM 通知后,它仍会继续以正常的“id=...”响应进行响应。
有没有其他人遇到过这个问题?如果是这样,您是如何解决的?
我正在尝试从 C2DM 迁移到 GCM,它大多工作得很好。C2DM 过去通过在用户卸载应用程序时发送 NotRegistered 错误来很好地处理应用程序的卸载。GCM 也应该这样做(尽管不能保证)。但是,它似乎不起作用。在向已卸载该应用程序的手机发送多个 GCM 通知后,它仍会继续以正常的“id=...”响应进行响应。
有没有其他人遇到过这个问题?如果是这样,您是如何解决的?
我们真的无能为力。只有 Google 知道应用程序何时被卸载并相应地更新其设备注册数据库。NotRegistered 响应可能需要几个小时才能回来?如果一天之后,您仍然没有收到,请向他们提交错误报告:http ://code.google.com/p/android/issues/list
我无法想象谷歌会让这个错误停留太久,因为他们可能正在考虑向数千或数十万台设备发送幻像通知。
我一直在从 C2DM 迁移到 GCM,我认为我也遇到了这个问题。长话短说,尝试从您的手机/模拟器中卸载该应用程序,然后不要在该手机/模拟器上重新安装它并让手机/模拟器运行几个小时,然后如果您尝试推送到该设备,您应该会收到 NotRegistered 错误注册编号。
如果我没记错的话,即使您在卸载后在 C2DM 中重新安装了该应用程序,您也会收到第一个注册 ID 的 NotRegistered 错误,这不是 GCM 的情况(通常如果不是总是两个注册 ID 相同),我花了一周的时间认为 GCM 有一些错误,它没有发送那个错误......