I'm getting a weird push message captured by my push service:
Bundle[{CMD=RST_FULL, from=google.com/iid, android.support.content.wakelockid=1}]
Just started to happen yesterday and I can't really spot which code change is to blame for this. Has anyone seen this message before and maybe knows where is it coming from and why?
I had this problem during migrating GCM->FCM with receiving only
wakelockid
element from:{ "to": "<your token from FirebaseInstanceId.getInstance().getToken()>", "notification": { "body": "Hello", "title": "This is test message." } }
Also I copied also all code from google quickstart firebase messaging. Everything should be fine. However, after all tests I decided to double check my gradle libs versions. So I incremented them to the latest numbers. Since then I started receiving messages correctly.
The fastest solution I would recommend to download project from GitHub and try if this is working for You. Next step would be copy this code to Your project. If in one project everything is working fine, You have at least one standing/working point where to start.
There are rumors about android studio is causing this issue - but it is not true. I checked it.
It can be true that You could use the same old token (from gcm) and not receiving messages but If You had the same case like me which is
migrating
, then token should be refreshed to new one and You should handle it..I realized the same issue today. First, this message must come from google itself (from=google.com/iid), otherwise the from attribute would be the id of your project in google developer console (i.e. 475832179747). But to be sure, I shutdown our application server, and I still received the message.
I always receive it when I newly register at the Google Cloud Messaging server. It's not a big problem because you can filter the message by the intent-action, but I would really like to know the purpose of it.
same thing is happening to me on at least an Asus tablet
likely on more devices but i haven't had a chance to take a look
i'm looking for some particular Strings in Intent.getExtras() so the fix was simple, if they aren't present then ignore the whole thing.
what are the chances someone from Google will show up and explain what's going on?
it seems google split the GCMIntentService which extended IntentService to handle gcms to two services, one extends GcmListenerService that will handle received messages and other that filter iid.InstanceID separately to filter out that notification received for first installation, this is from new gcm android guides
https://developers.google.com/cloud-messaging/android/client
Your app is getting this message because it has had data restored from a backup. As the backup may have included registration tokens, this broadcast is sent telling your app to get new tokens as the backed up ones will not work.
This is intended for the new GCM APIs, and it will cause your InstanceIdListenerService implementation's onTokenRefresh() method to be called, where your app should obtain all its tokens again.
Unfortunately, if you are writing your own BroadcastReceiver, these messages will be unexpected and may cause your app to crash. The right thing to do is to filter on the "from" field, and if you see one of these messages, to register again with GCM as your tokens may be invalid.
If you are getting these messages outside the situation of a fresh install where your app's data is being restored, please post to the android-gcm mailing list.
See the updated GCM API Docs as @morepork suggests.
From their sample code, it's pretty easy to follow.
AndroidManifest.xml
MyGcmListenerService.java
MyGcmRegistrationService.java
MyInstanceIdListenerService.java
Then you can replace your old registration code with just