gpt4 book ai didi

android - UrbanAirship 与 GCM 通知

转载 作者:行者123 更新时间:2023-11-30 02:28:51 28 4
gpt4 key购买 nike

我在使用 GCM 时遇到了一个严重的问题。之前我们使用 UrbanAirship 发送推送通知,它使用 GCM 发送推送消息。现在我们已经在客户端和服务器上实现了我们自己的 GCM,并希望仅使用 GCM 发送推送通知。由于一些用户将使用旧版本的应用程序并且可能没有更新到新版本,我们必须继续使用 UrbanAirship 向他们发送通知。已更新应用程序的用户将仅通过 gcm 获得推送消息。这在 Debug模式下进行了测试并且工作正常。当通过 UrbanAirship 发送推送消息时,安装了新版本的那些设备没有收到它。

但是在实时服务器上,当我们尝试发送推送消息时,更新了应用程序并从一开始就和我们在一起的用户(过去通过 UrbanAirship 接收推送消息)收到了来自 GCM 和 UrbanAirship 的推送消息。通过 GCM 发送的推送消息包含消息,但通过 UrbanAirship 发送的消息是空白的。同样的事情并没有发生在那些第一次安装该应用程序的设备上。这些用户仅通过 GCM 接收推送消息。

我认为这是因为 UrbanAirship 仍然具有那些过去通过 UrbanAirship 接收推送消息的设备的 device_id。现在,处理 GCM 和 UrbanAirship 广播的 Activity 使用的权限是相同的,它们都响应 intent-filter 中的相同操作。因此,即使 UrbanAirship 的 Activity 已从 list 文件中删除,消息仍由处理 GCM 推送消息的 Activity 处理。

有没有办法阻止 UrbanAirship 向那些过去通过 UrbanAirship 接收通知的设备发送推送消息?或者从 UrbanAirship 注销这些设备?或者我可以通过传递一个额外的参数来修改 GCM 的接收器,如果该参数在应用程序中未被识别,则不会创建推送通知吗?

最佳答案

您可以通过以下方式为您的设备发送哈希 ID 来注册您的设备:

UAirship.shared().getPushManager().getNamedUser().setId(msisdn)

并通过设置命名用户 = null 来取消注册:

UAirship.shared().getPushManager().getNamedUser().setId(null);

关于android - UrbanAirship 与 GCM 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27563015/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com