Jan*_*usz 7 android android-c2dm
我刚刚将C2DM功能添加到我的Android应用程序中.
如果在我的应用程序中启动C2DM,则会发生以下情况.
从intent中检索设备令牌并将其发送到我的服务器
从那一刻起,一切都很好.客户端收到推送通知等.如果以下情况发生,则会出现问题:
用户在不禁用推送的情况下卸载应用程序.(完全删除它不仅更新)
如果在步骤5之后发送推送通知,我的应用仍会收到此通知.似乎从先前安装中检索到的令牌仍处于活动状态,并重新连接到我的应用程序的新实例.
这导致了以下问题:
这是C2DM系统中的错误还是我的设置有问题?
更新
我遵循了Berdons的建议并做了以下事情:
出于测试目的,每次我的应用程序启动时,只启动取消注册Intent.发送取消注册后,我的服务器的推送通知不会发送到我的应用程序.这似乎可以解决问题,但如果我现在进入C2DM设置屏幕并打开我的应用程序的推送通知,所有旧令牌再次激活,我会收到我在我的应用程序的当前安装中未注册的信息.
下一次更新
看来我不是唯一有这个问题的人:
我希望谷歌能够管理这些令牌,使得同一设备的旧令牌在发布新令牌后被禁用.我还希望在我向该应用程序发送取消注册Intent所有令牌后,该设备被标记为无效或从Google服务器中永久删除.如果这是某种形式的谷歌设计决定的特殊用例我不明白请赐教.
我们现在找到了一个适用于大多数情况的解决方案。
服务器将 C2DM 注册 ID 添加为每个 C2D 消息的数据字段。
该解决方案使我们能够仅显示相关数据,而无需存储唯一的用户 ID。
| 归档时间: |
|
| 查看次数: |
3372 次 |
| 最近记录: |