Notifications Not Shown on Device
Common reasons why App Push Notifications are not showing on the device(s)
A "green" dot to the left of the Campaign Name under Campaign Reports means we have successfully sent the notification to the push servers (FCM & APNS). These push servers then distribute the notifications to your subscribers.
The following are reasons why notifications may show as "Delivered" on the iZooto dashboard, but are not visible on your device(s).
Network Issues
No Internet
Devices must be online to receive push notifications. If your device is turned off, in airplane mode, has unstable or has no internet connection, the push will not show until a proper connection is made. You can set the timeframe Google and Apple Servers will wait for a connection with the Time To Live (TTL) Parameter (the default is 1 day).
WiFi Connection
Check the network / WiFi you are connected with as it may have closed your connection to Apple or Google's servers. Try disabling and re-enabling your internet connection. Also try without WiFi, using Cellular data.
See Notifications Delayed troubleshooting guide for more details.
Firewall or VPN
If you are restricting traffic to or from the Internet, you need to configure it to allow connectivity with FCM in order for your Firebase Cloud Messaging client apps to receive messages. The ports to open are 5228, 5229, and 5230. FCM typically only uses 5228, but it sometimes uses 5229 and 5230. FCM does not provide specific IPs, so you should allow your firewall to accept outgoing connections to all IP addresses contained in the IP blocks listed in Google's ASN of 15169. From the "Firewall" note: https://firebase.google.com/docs/cloud-messaging/concept-options.
Not Targeted in the Push
Check the segment you sent the push to make sure it is set up correctly. This is under Segments. Sometimes your device(s) might not belong to the segment selected for the Push.
App Push Permissions Disabled - Device Not Subscribed
Android & iOS: In your Device Settings > Notifications > Your App, you can turn on and off push notifications.
Make sure permissions are enabled for your device.
Android Categories Disabled
Android Settings App > Notifications > Your App: You should see "Show Notifications" enabled and all categories underneath enabled. If you have a category disabled, you will not get notifications from that category.
Low Power, Energy Saving
Some devices have a specific battery optimization that will stop or decrease the rate of showing notifications.
Android: In Settings, search for:
- Power Saving Mode or Energy Saving - If "Power Saving Mode" and/or "Limit apps and Home screen" is enabled, this will limit all background activity and might stop push notifications from being received.
- Adaptive power saving mode - If enabled, the device will automatically turn on/off "Power Saving Mode" based on your usage patterns.
- Battery Optimization or Background usage limits - Battery optimized apps will have background functions (like push notifications) restricted. Make sure your app is Not Optimized.
iOS: If the device has Low Power Mode enabled and has low power, it will reduce the rate at which notifications can be received. Check if enabled in Settings > Battery > Low Power Mode.
Do Not Disturb Mode
If Do Not Disturb is enabled, this prevents the notifications from "popping up" on the screen but still shows in the "Notification Center".
iOS: Disable within Settings > Do Not Disturb.
Android: Disable within Settings > Notifications > Do Not Disturb> or search for Do Not Disturb in Settings and disable.
Android App is Force Stopped
When an app is in a Force Stopped / Force Killed state most events including FCM Messages for push notifications will not be received. An app can be placed in this state in the following ways:
- From Settings > Apps, "Force Stop" is pressed.
- Long pressing the back button on some devices.
- Using a 3rd party task killer like Greenify.
- Swiping away your app while remote debugging it. (Not the same as viewing the logcat but launching your app as a remote debug process.)
- Automatically on some devices due to custom Android tweaks done by manufacturers. This is a known issue affecting all push providers (not just iZooto).
Based on your device manufacturer, you can follow these steps to enable push for your device.
Manufacturer | Description |
---|---|
Asus | Check your app in the Auto-start Manager. |
Huawei | Step 1: Settings > Advanced Settings or Power Saving > Battery Manager or Protected Apps > select the app to protect it. Step 2: Settings > Apps or Notification Manager > Advanced or Notify for your app > Ignore Battery Optimizations, select the app and ignore it. Step 3: Settings > Notification Panel & Status Bar > Notification Center, select the app, then activate "Allow Notifications" and also "Priority Display". Full Instructions Pre-EMUI 5.0 / Android 7 - Go to Settings > "Protected apps", check your app. Full Instructions |
LeEco/LeTV | Step 1: Settings > Permissions > Manage Auto Launch > Select the app to protect it. Step 2: Settings > Battery > Power Saving Management > App Protection, select the app and ignore it. |
Lenovo | Settings > Power Manager > Background App Management, select the app and ignore it. |
OnePlus | Settings > Battery > Battery Optimization > Top right 3-dot menu > Advanced Optimization, turn off. Settings > Battery > Battery Optimization > Your App . Don't Optimize Settings > Alert Slider to make sure it is set up the way you want. Make sure that Gaming mode is off or go to Settings > Advanced > Gaming mode and toggle Block notifications Look in Settings > Apps and check the Notification settings for problem apps. More Details |
Oppo | Settings > Security Settings > Data Saving and enable your app. |
Samsung | Disable battery usage optimizations Settings > Device Management > Battery > Unmonitored apps > Add your app Make sure notifications are turned on for your app Settings > Apps > Your app > App Settings > Notifications > Set as Priority Samsung devices with Android 8+ have a "Standby" mode where the app will not get any notifications, updates, or Intents until the app is opened again by the user. This defaults to 3 days, but can be increased to 7 days. More details in Samsung's Support/Troubleshooting Steps. |
Sony | Tap on the battery icon. Go to Power Management > STAMINA mode > Apps active in standby > Add your app. |
Xiaomi/Redmi | More details in Android Central Post Settings > Installed Apps > Your App > Battery Saver > change option from "Battery Saver" to "No restrictions". OR Settings > Manage Apps' battery usage > choose your app > select "No restrictions". Provide authorization to your app to run at start by activating the AutoStart option in Settings > Installed Apps > Your App OR Security (App) > Permissions > AutoStart > Enable your app OR Settings > Permissions > AutoStart > Your App > toggle switch to turn on Settings > App Notifications > Your App > toggle on "Priority" Settings > Notifications & Status Bar > Turn on "Show Notification Icons" (if you want to see icons) > App notifications > Your App > Show notifications Settings > Developer Options. Disable "memory optimization". To enable Developer Options, go to Settings > About. Tap on MIUI 8 times. Full Instructions |
MIUI 10 | Settings > Battery & Performance > Choose Apps > Select the app that is not showing notifications > Select No restrictions Settings > Permissions > AutoStart > Toggle slider next to the apps that are not getting push |
Checking your app state
1. Run the following to check the current state of your app.
*Replace "com.company.appname" with your package name.
adb shell dumpsys package com.company.appname | grep stopped
If you see stopped = false
, then everything is fine. If you see stopped = true
, then your app was force killed in some way.
2. Another way is to send a few notifications and check for the following GCM logcat entry.
W/GCM-DMM: broadcast intent callback: result=CANCELLED forIntent {
act=com.google.android.c2dm.intent.RECEIVE pkg=com.izooto.example (has extras)
}
If you see this canceled intent above, then your app could not be started to process the notification.
Some device manufacturers will white list apps from going into the force closed state. For example, Gmail and WhatsApp.
Additional Debugging
FCM provides a REST API to query the last time a device was connected to FCM. See the following Google documentation on how to get this.
https://developers.google.com/instance-id/reference/server#get_information_about_app_instances
Updated almost 2 years ago