2

我注意到通过 Urban Airship(通过 C2DM)接收推送通知的 Android 应用程序存在问题。

该应用程序在首次安装时注册到 Urban Airship。当用户启动应用程序时,他们被要求向应用程序接口的系统提供用户 ID 和密码。成功验证后,此用户 ID 被分配为此实例的 Urban Airship 别名。

当用户清除应用程序的应用程序数据时会出现此问题。下次启动应用程序时,它会重新注册 Urban Airship,但会收到不同的 APID。用户再次输入他们的凭据,现在我有两个不同的 APID,具有相同的别名,指的是同一设备。每当我发送广播消息或指向该别名的消息时,应用程序都会收到两次消息。显然,我不希望这种情况发生。

同时,用户完全有可能将应用程序安装在两个不同的设备(例如,手机和平板电脑)上,在这种情况下,我会将相同的别名分配给两个不同的 APID,这没关系. 我的问题是当两个 APID 引用同一设备时。

我试图弄清楚如何防止这种情况发生。我希望当用户选择清除应用程序数据时可能会触发某种意图,但似乎这种意图并不存在。

有没有其他人遇到过这个问题,你能想出一个解决方案吗?

4

1 回答 1

1

似乎城市空气已经解决了这个问题。现在,如果多个设备 id 注册在同一个别名下,他们只会将消息发送到最后一个注册的那个。虽然它解决了你的问题,但创造了一个新的另一种问题,就好像某些用户在某个别名下注册了两个设备 ID,只有最后一个会收到推送通知。但是由于多次注册而在单个设备上获得多个通知更为突出和糟糕的用例,因此我想他们一定考虑过这种权衡.

于 2013-03-18T13:18:05.337 回答