我注意到通过 Urban Airship(通过 C2DM)接收推送通知的 Android 应用程序存在问题。
该应用程序在首次安装时注册到 Urban Airship。当用户启动应用程序时,他们被要求向应用程序接口的系统提供用户 ID 和密码。成功验证后,此用户 ID 被分配为此实例的 Urban Airship 别名。
当用户清除应用程序的应用程序数据时会出现此问题。下次启动应用程序时,它会重新注册 Urban Airship,但会收到不同的 APID。用户再次输入他们的凭据,现在我有两个不同的 APID,具有相同的别名,指的是同一设备。每当我发送广播消息或指向该别名的消息时,应用程序都会收到两次消息。显然,我不希望这种情况发生。
同时,用户完全有可能将应用程序安装在两个不同的设备(例如,手机和平板电脑)上,在这种情况下,我会将相同的别名分配给两个不同的 APID,这没关系. 我的问题是当两个 APID 引用同一设备时。
我试图弄清楚如何防止这种情况发生。我希望当用户选择清除应用程序数据时可能会触发某种意图,但似乎这种意图并不存在。
有没有其他人遇到过这个问题,你能想出一个解决方案吗?