0

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

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

4

1 回答 1

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 方服务器的角色。你会得到更多的细节。

于 2013-04-18T05:58:45.830 回答