我的数据库表中有多个不同的设备指向同一设备,因为当设备重新安装/安装时,谷歌会向我发送不同的设备ID。由于哪些设备收到多个通知,这对我和我的用户非常伤害。有没有办法告诉谷歌只向单个设备发送一个通知?或者有没有办法在发送请求之前检查ID是新的还是旧的?有人遇到过这个奇怪的问题吗?顺便说一句,我在后端使用PushSharp / ASP.NET。
更新:我现在依赖本机设备ID。因此,我将从我的数据库表中删除/替换旧的注册ID,其中本机设备ID是相同的。
答案 0 :(得分: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
请阅读第三方服务器的角色。你会得到更多细节。