我对android Gcm Token Expire策略感到好奇。 当我想要使用Gcm服务注册的设备能够接收Gcm推送消息时,我会将其注册到API。
然后我会得到一个Gcm令牌“A”。 如果我从未在Play商店中升级我的应用版本代码。 谷歌会用“B”刷新它并自动过期“A”吗?
如果是的话,什么时候会这样做。 我看过一些文章说一旦“A”用“B”刷新,那么当服务器尝试向“A”发送消息时,服务器将获得新的注册ID“B”。我现在想知道客户端如何知道gcm令牌“A”已过期并被“B”替换
有人可以回答我的问题吗?
由于
答案 0 :(得分:2)
是的,使用doc
实施onTokenRefresh()系统确定需要刷新令牌时调用。应用程序应调用getToken()并将令牌发送到所有应用程序服务器。这不会被频繁调用,需要进行键旋转和处理特殊情况。系统将限制所有设备上的刷新事件,以避免使用令牌更新使应用程序服务器过载。
答案 1 :(得分:0)
该令牌会定期过期,但Google发布的确切时间尚未发布。但是,还有一些令牌可能会过期的其他实例。
来自Android Implementation Guide on Instance ID
Instance ID服务定期启动回调(例如,每6个月),请求您的应用刷新其令牌。它还可能在以下情况下启动回调:
- 存在安全问题;例如,SSL或平台问题。
- 设备信息不再有效;例如,备份和恢复。
- 实例ID服务会受到影响。
此外,我在一段时间内回答了同一主题时提出了一个大问题(更像是一系列问题)。这可能会对您有所帮助:When do GCM Tokens Expire and What is the InstanceID?