android - 应用启动时收到奇怪的推送消息

标签 android push-notification google-cloud-messaging

我的推送服务捕获了一条奇怪的推送消息:

Bundle[{CMD=RST_FULL, from=google.com/iid, android.support.content.wakelockid=1}]

昨天才开始发生,我真的无法确定是哪个代码更改造成的。有没有人以前看过这条消息,也许知道它来自哪里以及为什么?

最佳答案

您的应用收到此消息是因为它已从备份中恢复了数据。由于备份可能包含注册 token ,因此会发送此广播通知您的应用获取新 token ,因为备份的 token 将不起作用。

这适用于新的 GCM APIs ,这将导致您的 InstanceIdListenerService 实现的 onTokenRefresh() 方法被调用,您的应用应该再次获取其所有 token 。

很遗憾,如果您正在编写自己的 BroadcastReceiver,这些消息将出乎意料,并可能导致您的应用崩溃。正确的做法是过滤“发件人”字段,如果您看到其中一条消息,请再次向 GCM 注册,因为您的 token 可能无效。

如果您在恢复应用数据的全新安装情况之外收到这些消息,请发布到 android-gcm邮件列表。

关于android - 应用启动时收到奇怪的推送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30479424/

相关文章:

android - ADB 拒绝 shell 命令 (ls -l) : closed

java - 资源$NotFoundException : File res/drawable-anydpi-v21/ic_upsc. xml

仅限 Android TileMode X 或 Y?

ios - iOS 10 上未为基于 XCode 7.3 构建的应用程序生成设备 token

java - 从 GCMBroadcastReceiver 获取共享首选项

android - 使用 GCM 和 PushWoosh 注册 Android 设备时收到错误消息

java - LinearLayout原因 "requestLayout() improperly called by android.widget.LinearLayout"

Android推送通知Urban AirShip错误: invalid authorization on platform GCM

ios - 我可以将 p8 APNs Auth Key 转换为 pem 文件吗?

android - java.lang.NoClassDefFoundError : com. google.android.gms.gcm.GoogleCloudMessaging 安卓