1

我们最近将 的值更改gcmSender为指向AirshipConfigOptionsUrban Airship 库对象中不同的 Google 项目编号(测试和生产环境之间的切换),如下所示:

AirshipConfigOptions options = AirshipConfigOptions.loadDefaultOptions(this);

options.gcmSender = "123456789101";

Urban Airship 现有的许多注册都是使用旧gcmSender值注册的。随着这一变化,所有对现有设备的推送通知都不再起作用。

这个StackOverflow 答案表明这是因为注册与特定的发件人相关联;但是我看不到任何在 Urban Airship 上删除或强制重新注册设备的方法。

有没有人遇到过这个?最终的解决方法或解决方法是什么?

4

1 回答 1

1

我不确定您的应用程序是使用 Google API 注册到 GCM(GoogleCloudMessaging.register 或 GCMRegistrar.register)还是有一些urbanairshipAPI 处理注册。

无论哪种情况,Google 都建议在每次更新应用程序时将设备重新注册到 GCM,如果更改发件人,则会为设备分配一个新的注册 ID。在他们的演示中,他们通过将当前应用程序版本与存储版本(应用程序获取注册 ID 时存储的版本)进行比较来检测它。由于您更改了发件人 ID,因此您必须创建应用程序的新版本,这应该会强制应用程序重新注册到 GCM(如果您添加此建议的逻辑)。

您可以在此处查看 Google 建议的注册码。

于 2013-09-18T12:35:25.880 回答