android - GCM 服务器处理 NotRegistered 错误响应

标签 android google-cloud-messaging

我是根据 GCM documentation 学习的如果由于应用程序在设备上卸载或其他原因导致设备不再注册而导致发送消息失败,它将返回错误值“NotRegistered”。

我的问题是,响应是否还会包含任何可识别设备的数据,例如现在无效的注册 ID?我意识到我需要从数据库中删除该设备,以便它无法发送更多消息,但我不确定如何在服务器端的数据库中识别该设备。对此有任何建议,我们将不胜感激。

最佳答案

您应该能够根据您发送给 GCM 的请求找到要删除的注册 ID。

如果您发送包含单个注册 ID 的 URL 编码请求并收到该错误,则您知道您必须删除该注册 ID。

如果您发送具有多个注册 ID 的 JSON 请求,则响应包含您发送的每个注册 ID 的消息 ID 或错误消息。例如,如果响应中的第 5 个元素包含 NotRegistered 错误,则与此错误匹配的注册 ID 是您的 JSON 请求中的第 5 个注册 ID。

关于android - GCM 服务器处理 NotRegistered 错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28331781/

相关文章:

java - setURLStreamHandlerFactory 和 "java.lang.Error: Factory already set"

java - getLatitudeE6() 返回错误值

java - Android中如何设置默认浅色主题?

Android oreo - 推送通知崩溃

android - 调用 GCMRegistrar.register() 时泄漏的 IntentReceiver 错误

java - android中定期向服务器发送数据

android - 关闭 GCM 通知

java - 以分钟为单位返回的时间的正确后缀 - Android

java - Android在ActionBarActivity中接收广播

android - 在库中实现 Firebase