gpt4 book ai didi

android - 卸载应用程序时 GCM 未注销设备

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:47:06 25 4
gpt4 key购买 nike

我制作了一个 Android 应用。我使用 GCM 推送通知。当用户时,我正在向 GCM 注册设备已登录。我正在使用外部 MySql 数据库 来存储用户的注册ID。它运行良好。

但是

当我执行以下步骤时:

  1. 在我的手机上安装我的应用。
  2. 使用 user1 登录。
  3. 从我的手机上卸载该应用程序。
  4. 再次安装该应用。
  5. 使用 user2 登录。

user1 通知仍在我的手机中收到,这意味着 GCM 没有在卸载应用程序时注销我的设备。

我无法在卸载应用程序时删除Mysql数据库中的行,因为我不知道应用程序何时卸载或用户可能没有互联网卸载应用程序时连接以删除行。

你能建议我如何解决这个问题吗?

我了解到 GCM 在卸载后需要一些时间来注销设备。

当 GCM 取消注册设备时,如何删除 mysql 中的行?

最佳答案

确实GCM在卸载后需要一些时间来注销设备。基于docs ,GCM服务器只有在发送“弹回”消息后才会将注册ID标记为删除,因为该应用已被卸载。

如果只是为了让情况更复杂一点,重新安装的应用程序可以收到相同的注册 ID 或不同的注册 ID。

您可以做的一件事是在您的 data JSON 对象中添加一个字段来指定目标用户是谁。这样一来,无论应用程序被卸载然后重新安装的情况如何,用户都只会收到为他们准备的消息(例如,通过某种“检查登录用户”功能)。

文档中的附加说明:

To make sure that messages go to the intended user:

  • The app server can maintain a mapping between the current user and the registration token.
  • The client app can then check to ensure that messages it receives match the logged in user.

关于android - 卸载应用程序时 GCM 未注销设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30540201/

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