I have a peculiar problem with GCM: it does not seem to send push to phones that run on Android 4.2.2. I have eight phones that I'm testing on, from 2.2 to 4.2.2, and one that runs 4.2.2 does not receive clicks. We sent apk to some contacts that have 4.2.2 phones, and they were able to confirm that only on the 4.2.2 output the phones failed. In general, we tested our application on more than 15 devices, five of which were on 4.2.2, and only five that could not get clicks.
Devices that could not receive clicks were:
- Samsung Galaxy S4
- Samsung Galaxy Nexus
- 2 x LG Nexus 4
- Developer phone from the Razor M. family
After studying the logs, the phone registers with the GCM servers with the registration ID. However, onMessage never starts. Again, it works on all our other phones that do not work 4.2.2. I am not sure what API specific behavior might cause; my destination API is set to 17, which I think is 4.2.
My other suspicion is that since all these phones running on 4.2.2 have not yet entered the market, or the factory come unlocked, which may be related to the problem. I have not been able to investigate this suspicion, because 4.2.2 has not yet been launched by AT & T and T-Mobile, and Verizon was just starting to do incremental deployments starting yesterday (May 21). I really donβt see how the 4.2.2 disk with a margin could be the reason that GCM is not working.
I tried to do some research on this issue, but it seems they have no problems. All I get from SO and Google when I look for GCM and Android 4.2.2 are issues with the new Bluetooth glass and reduced battery life with the update. I am pretty convinced that I have to do something wrong, because other applications do not seem to be sending any problems, but I'm not sure where to start the investigation. If someone can point me in the right direction, it will be very appreciated.
EDIT: So it turned out that I accidentally turned off registration on the server side, so GCM really returns an error when sending. I return a "NotRegistered" error on devices 4.2.2, although the registration process on the client does not cause errors and even returns a registration identifier. Again, pushing devices that are not working on Android 4.2.2 are working fine.