gpt4 book ai didi

android - GCM token 刷新以及何时将 token 发送到服务器

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

我正在关注 GCM-Android官方指南中的集成示例。

特别是我对上面链接类中的以下几行感到困惑:

// You should store a boolean that indicates whether the generated token has been
// sent to your server. If the boolean is false, send the token to your server,
// otherwise your server should have already received the token.

现在我每次启动主要 Activity 时都会调用 Intent 服务,并且我相信 instanceID 负责启动 token 刷新。

每次从我的主 Activity 启动此 GCM 注册 Intent 时,我是否应该检查共享首选项值。然而,在这种情况下刷新将失败,因为在初始 token 获取之后,条件将始终为真。

我是否应该放弃共享首选项逻辑 - 这样每次都会将新 token 发送到我的服务器。这样做的正确方法是什么? token 刷新如何工作以及何时刷新?

最佳答案

是的,您不需要将其保存在 sharedPreference 中。为了保护客户端应用程序和应用程序服务器免受注册 token 的潜在恶意重复使用,您应该定期从服务器启动 token 刷新。当从服务器端启动 GCM 注册 token 刷新时,客户端应用程序必须使用 GCM 注册客户端/服务器握手处理 tokenRefreshed 消息。

基于document ,备份 Google Cloud Messaging 注册返回的注册 token 可能会导致已恢复应用程序的通知出现意外行为。这是因为当用户在新设备上安装您的应用程序时,该应用程序必须查询 GCM API 以获取新的注册 token 。如果旧的注册存在,因为系统已经备份并恢复了它,应用程序不会寻找新的 token 。为防止出现此问题,请从备份文件集中排除注册 token 。

这是 Google 服务的演示应用程序 - MyInstanceIDListenerService:https://github.com/googlesamples/google-services/blob/master/android/gcm/app/src/main/java/gcm/play/android/samples/com/gcmquickstart/MyInstanceIDListenerService.java#L38

有关详细信息,请阅读此处的官方 Google 文档:https://developers.google.com/cloud-messaging/registration

关于android - GCM token 刷新以及何时将 token 发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35357131/

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