Firebase cloud messaging not received by some devices - android

I faced a problem took my time for 5 days.
When I send push notifications with FCM, web service response back success as below
{"multicast_id":7792208922657857316,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1501588248469528%fdb01da9f9fd7ecd"}]}[]
But it not received in some devices.
just for inform you it can received by some other devices.
I searched several sites but my problem is remained yet.

The multicast_id is just a confirmation that your request has been accepted by the FCM server.
Possible issues why push was not received on some devices:
Device offline in the given ttl
App was force stopped by the user/battery saving app/launcher customisations like MIUI, OPPO color OS etc
User un-installed the app. Google at times is not able to able to mark the user uninstalled immediately.

Related

Expo standalone FCM push notifications are not rececived by android device after switch online

When i try to send notification when target device internet connection is off and next turn on internet connection i receive no notification.
There is no problem with notifications when device is online.
This is standalone Expo aplication with FCM notifications.
Based on FCM docs it should work.
...When this happens, FCM stores the message and delivers it as soon as it's feasible
Tested on two different devices, same result. Any idea?
Can't believe. This is just default expo ttl settings.
...Time to Live: the number of seconds for which the message may be kept
around for redelivery if it hasn't been delivered yet. Defaults to 0.

GCM Push notification not received on single device android

GCM Push notification is not received to one device alone. It is working fine with other mobile devices. GCM token is registered and it is active. But the notification is pushed but not received. The device model which is not receiving is Moto G4. To other users who uses this device model are receiving the notification. Please help in finding the issue. I tried re-installing the application and also cleared the cache. But no solution found.
First confirm once if there is no error message returned from GCM server. Check if the notification priority is 'high' in gcm/fcm send api
Try the code ##426## to check the hear beat status of your google play services.
Check if there are any device specific settings like 'Disabling autostart option'[in MIUI devices], 'no notification in locked state'[in oppo devices] or any security apps the kills your app if the app is in background.

Firebase : Devices below Lollipop is not receiving notification from my local server

I am following androidhive's tutorial. I am having weird problem if I try sending notification from console everything is fine. But if I try sending notification from web app devices below lollipop is not receiving any notification. What might be the possible problem
This is first time I hearing this type of issue and have you tested with other device other than your development devices. If a device is registered with the gms then it should receive the message. Try to clear the cache data of your app might be helpful.

Handling Push Notification scenarios on iOS and Android

I want to implement Push Notification for an App (both iOS and Android) and need clarifications on the following scenarios.
I understand how the Push Notification works in general and the limitations. I did read the docs but that just got me confused and didnt answer all my questions.
How are the following scenarios handled in iOS and Android:
When the device is turned off
When the device is not connected to 3G or Wifi networks
When the device has crashed and need restart
When the App is in foreground
When the App is in the background
When user is currently using the App
When my app is closed (not opened / launched)
When a push notification is user specific and both users share the same device and app. Example: If a husband and wife share same device and use a bank App with Push notification.
Can you send User specific notification if device is shared by multiple users?
When user has installed App on multiple devices
Can you send a notification to all devices registered by a user at once?
Do you store the device type (iOS or Android) with the registrationID in the User table or is there a way to differentiate the type of device by inspecting the token or registrationID?
Can you cancel a previously sent notification which is not read yet and send a new one?
Is it still true that Android Push Notifications does not work on Kindle Fire and will need to implement Amazon Device Messaging
Anything else that I need to think of or plan? I am aware of handling un-registering and feedback service
I would answer some of your questions, specific to android thought. Don't know about iPhone, If its of similar kind or not.
The device receives notification from Google Cloud server as and
when the notification is triggered by the server and it doesn't have
any relation with application state (Running, Closed, Background or
foreground).
If the notification is sent to a device when its not connected to
the internet ( switched off or not connected to the net) , it gets
notification only when it connects to the network. However, if the device
is crashed and restarted after the notification is received, you
won't get the notification again.
Is it user specific?
It depends on the individual servers implementation.
Do we store device type?
Yes we can.
Can we differentiate the IDs of iPhone and android?
Yes, android Device IDs are longer in length than iPhone's.
Can we cancel an already sent notification?
No, it is a one way communication channel as far as I know.
When the device is turned off:
Answer:
IOS/Android Server (Not your Server) will handled when to send the Push Notification. It checks that device is reachable or not. We can define that how many times IOS/Android Server should try to send Push Notification.
When the device is not connected to 3G or Wifi networks
Answer:
Nothing related to 2G/3G/Wi-Fi. Device should be connected to Internet via any network.
When the device has crashed and need restart
Answer:
IOS/Android Server checks that device is reachable or not.
When the App is in foreground
Answer:
Nothing related to app in foreground.
When the App is in the background
Answer:
Nothing related to app in background.
When user is currently using the App
Answer:
Nothing related to app being used currently.
When my app is closed (not opened / launched)
Answer:
Nothing related to app is closed.
When a push notification is user specific and both users share the same device and app. Example: If a husband and wife share same device and use a bank App with Push notification.
Answer:
It depends on how you have implemented on YOUR Server. You will be managing Device Id for each user. So it's upto your implementation logic to send to same device for multiple users.
Can you send User specific notification if device is shared by multiple users?
Answer:
It depends on how you have implemented on YOUR Server. You will be managing Device Id for each user. So it's upto your implementation logic.
When user has installed App on multiple devices
Answer:
It depends on how you have implemented on YOUR Server.
Can you send a notification to all devices registered by a user at once?
Answer:
Yes again as per your implementation logic.
Do you store the device type (iOS or Android) with the registrationID in the User table or is there a way to differentiate the type of device by inspecting the token or registrationID?
Answer:
Yes you need to store the device type, to identify to which Server (IOS/Android), you need to send request for Push Notification.
Can you cancel a previously sent notification which is not read yet and send a new one?
Answer:
No you cannot cancel the request.
Is it still true that Android Push Notifications does not work on Kindle Fire and will need to implement Amazon Device Messaging
Answer:
Need to google it around.
Anything else that I need to think of or plan? I am aware of handling un-registering and feedback service
Answer:
Need to google it around.

Android C2DM messages reach phone, forwarded to wrong app

I've been messing around with C2DM and have a nice little app working perfectly in the Emulator. I send a message from my app server to Google's C2DM servers, the message will arrive on the emulator and my app would respond appropriately.
My problem now is running the app on my smartphone (a Nexus One). The app runs fine and registers for C2DM with Google and then forwards it's rego ID to my application server. This is all working as expected. Problem is, when I send a message from my app server to the phone, my app never receives the message. After some investigation I found out
that the message reaches the phone, but the C2DM subsystem seems to be forwarding the message to the Google Talk app and not MY app.
Has anyone seen this behavior before? Can anyone give hints on what to look for to solve this? I was assuming that if the registration messages where forwarded to my app, then everything else should be as well.
Thanks,
Jamie
It now 'just works'. For some reason after today's testing everything is just working. The only differences are an update to Froyo that came down OTA a few weeks back but other than that the app is it's original version.

Categories

Resources