多个通知是从(GCM)Google 通知服务器获取的?

Posted

技术标签:

【中文标题】多个通知是从(GCM)Google 通知服务器获取的?【英文标题】:Multiple Notification is getting from (GCM)Google Notification Server? 【发布时间】:2013-04-18 05:46:50 【问题描述】:

我的数据库表中有多个不同的设备 ID 指向同一个设备,因为当设备重新安装/安装时,谷歌会向我发送不同的设备 ID。由于哪些设备会收到多个通知,这对我和我的用户造成了极大的伤害。有没有办法告诉谷歌只向单个设备发送一个通知?或者有没有办法在发送请求之前检查 id 是新的还是旧的?有人遇到过这个奇怪的问题吗?顺便说一句,我在后端使用 PushSharp/ASP.NET。

更新:我现在依赖本机设备 ID。因此,我将从本地设备 ID 相同的数据库表中删除/替换旧的注册 ID。

【问题讨论】:

【参考方案1】:

我认为一旦您收到未注册的错误代码,您需要从数据库中删除设备 ID。

Unregistered Device
An existing registration ID may cease to be valid in a number of scenarios, including:
If the application manually unregisters by issuing a com.google.android.c2dm.intent.UNREGISTER intent.
If the application is automatically unregistered, which can happen (but is not guaranteed) if the user uninstalls the application.
If the registration ID expires. Google might decide to refresh registration IDs.
If the application is updated but the new version does not have a broadcast receiver configured to receive com.google.android.c2dm.intent.RECEIVE intents.
For all these cases, you should remove this registration ID from the 3rd-party server and stop using it to send messages. 
Happens when error code is NotRegistered.

我建议您在向设备发送消息时处理错误代码。

http://developer.android.com/google/gcm/gcm.html

请阅读第 3 方服务器的角色。你会得到更多的细节。

【讨论】:

谢谢。我认为我应该使用本机设备 ID 来缓解这种情况。 ***.com/questions/15744807/…

以上是关于多个通知是从(GCM)Google 通知服务器获取的?的主要内容,如果未能解决你的问题,请参考以下文章

获取通知密钥错误 401 gcm https://android.googleapis.com/gcm/googlenotification

Google GCM - 未在 android Lollipop 中接收推送通知

未收到来自 Amazon SNS 的 GCM 推送通知

React本机推送通知,GCM服务器返回401

无需谷歌云消息(GCM)将通知从 PC 推送到 android

谷歌 GCM 推送通知服务器的 IP 范围?