Я заметил проблему с моим приложением для Android, которое получает push-уведомления через Urban Airship (через C2DM).
Приложение регистрируется в Urban Airship при первой установке. Когда пользователь запускает приложение, его просят указать идентификатор пользователя и пароль для системы, с которой взаимодействует приложение. После успешной аутентификации этот идентификатор пользователя назначается в качестве псевдонима Urban Airship для данного экземпляра.
Проблема возникает, когда пользователь очищает данные приложения для приложения. При следующем запуске приложение перерегистрируется в Urban Airship, но получает другой APID. Пользователь снова вводит свои учетные данные, и теперь у меня есть два разных APID с одним и тем же псевдонимом, относящимся к одному и тому же устройству. Всякий раз, когда я отправляю широковещательное сообщение или сообщение, направленное на этот псевдоним, приложение получает сообщение дважды. Очевидно, я не хочу, чтобы это произошло.
В то же время вполне возможно, что у пользователя может быть установлено приложение на двух разных устройствах (скажем, на телефоне и планшете), и в этом случае у меня будет один и тот же псевдоним, назначенный двум разным APID, и это будет нормально. . Моя проблема заключается в том, что два APID относятся к одному и тому же устройству.
Я пытаюсь выяснить, как я могу предотвратить это. Я надеялся, что может быть какое-то намерение, которое срабатывает, когда пользователь решает очистить данные приложения, но, похоже, такого намерения не существует.
Кто-нибудь еще сталкивался с этой проблемой, и вы смогли придумать решение для нее?