在官方文档和this question , Google 建议重新注册 GCM,因为注册 ID 可能会更改。
如果 Google Play 自动更新我的应用程序,处理这种情况并重新注册的最有效方法是什么?在像 WhatsApp 这样的应用程序中,除非收到 GCM 通知,否则用户可能永远不会明确启动任何 Activity 。因此,用户基本上是“迷路”的,直到他不小心偶然发现了一个 Activity 。
在https://stackoverflow.com/a/14955308/111021提到将包含“Canonical ID”,以便第 3 方服务器可以更新注册 ID。但是在doc没有明确说明涵盖了这种情况(即 GCM 可能会在更新间隙期间将应用程序误认为“已卸载”,在这种情况下,在我看来不会生成规范 ID,我将直接转到 NotRegistered
).
“高可用性”应用(如 WhatsApp 或其他消息应用)如何处理此问题?
最佳答案
下面的解决方案呢:
为 Intent 创建一个BroadcastReceiver ACTION_PACKAGE_REPLACED 强>。当安装新版本的包时,您将收到此 Intent 。获得此 Intent 后,您可以重新注册 GCM 以获得新的注册 ID。
广播操作:已安装应用程序包的新版本,替换之前安装的现有版本。数据包含包的名称。
关于android - 在自动更新期间保持应用程序 GCM 注册 ID 有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17626922/