we are using the Gcm Push Notification Server from our externel Java Project to send push notifications to an Android Phone.
On this phone there is an app running that reacts on this notification. The app needs to know when the push notification arrived at the phone (in order to calculate a 120sec timer beginning at this point of time).
Is there a possibility in the andorid app to find out when the push notification arrived...some kind of creation/imcome/recieved timestamp?
Thx
Try System.currentTimeMillis() in your GcmListenerService's onMessageReceived() method.
Related
I'm trying to build a real time chat app.
I have integrated https://pub.dev/packages/flutter_local_notifications package for push notifications and this works.
I am NOT using Firebase, i am using my own custom backend that uses https://socket.io/ for real time chatting.
I want to receive a push notification when the user sends a chat message. Push notifications work when the app is in foreground or background. However when i terminate my app from the process (app is killed), the push notifications no longer work.
Is there a way to send push notifications without using Firebase so that i can receive notifications even when my app has been terminated from the process? I need this to work both for android and ios.
Basically, I don't recommend any solution for push notifications instead of firebase.
But if you have your reasons to use socket in this case I suggest you take a look into this package how it uses background service and tries to implement your own way to setup socket-based notification background service.
https://pub.dev/packages/background_locator
I want to send a Push notification to different users at different time. The time will be devise time not server time.
For example -
I want to send a push notification to 'Ajay' at 8AM of device time - 'Good Morning Ajay'
I want to send a push notification to 'Gargee' at 2PM of device time - 'Have a wonderful day'
How do I receive the device time before sending the push notification?
You can't schedule notification on mobile side.
Notification messages don't execute your application code when your app is in the background. All messages sent from the Firebase console are Notification messages. So you can't currently use the Firebase console for what you are describing. So, you can send Data messages from your app server which can trigger background execution of code. You can manage the notification scheduling on your app server Using cronjob.
Otherwise, You can write cloud function for notification scheduling...
You can take the support of local notification here. You can either fire local notification or you can use DispatchQueue.main.asyncAfter to make an API call for saving the device time and also fire the push notification accordingly.
I am trying to figure out how Facebook / Twitter sends push notifications like "You have 20 new followers"I don't know how to call it but i want to learn the underlying algorithm of this in Android. Please help, Thanks !
On Android you can execute your code before actually showing a push notification. They could simply send a push notification to all devices with an identifier, then the app can make a request to the server and get the needed information in order to show the push notification.
They can also send one push notification per device, as they can associate the push notification key with the user login, and the server would fire a push notification every time there is an event that demands a push notification.
But there are also other ways of doing this, for example, they can, for example run locally in background and create a local notification when the app decides it is necessary.
I am working on a Cordova Android app that handles push notifications using the PushPlugin. The app will correctly receive push notifications when the app is open. However no push notifications are received (or at least handled) if the app is not open.
This makes some sense given that the plugin has code that specifically handles receiving push notifications. What does not make much sense to me is why this code even exists at all. Before building this app, I assumed that the OS had some sort of queuing system that received any/all notifications.
Does a notification queue exists in Android that handles push notifications for all apps or does each app need to handle the notifications on their own.
Can Android apps process push notifications while closed?
Can Cordova Android apps process push notifications while closed?
In Google Cloud Messaging (which is the push notifications mechanism used by the PushPlugin) each application decides how to handle the notification. When a push notification arrives to the device, GCM triggers a BroadcastReceiver in the recipient application, and the application is responsible for handling the notification data.
Android apps can process push notifications when closed unless they are explicitly stopped by the user (in which case no notifications will reach the app until it is restarted again by the user). If they leave the foreground by the user switching to another app or going to the home screen, the can still receive and process notifications.
Yes. According to the PushPlugin you posted a link to, it seems that they can. When the app is not in the foreground, the notification is handled differently - a notification is added to the notification bar, and when it is tapped, it should open the app.
With PushPlugin, when sending push notifications to GCM (for GCM to send them to the device) one has to include a msgcnt key value pair after the message key value pair in the payload value in the JSON message, like this:
{
"GCM":"{\"data\":{\"message\":\"hello\",\"msgcnt\":\"1\"}}"
}
or else PushPlugin will not handle the notification when the app is in the background. It has to do with the way the GCMIntentService.java file is written in the plugin.
Hi i wish to implement push notification in my own android application. how can i do? please give me some ideas....
This kind of broadcast receivers should receive messages even if my app is closed(like Gmail.here i receive one new message in my inbox means that time the notification message is displayed on top of my android device,clicked that notification message means directly go to inbox and view that message).
here i wish to insert one data on my database means the notification message is display on my android app even my app is closed.
Please see http://developer.android.com/guide/google/gcm/index.html. You need to implement GCM.
EDIT:
To get notification even if app is in background, see Android GCM (push notification): device doesn't receive notification if application is stopped.
See Android GCM basic implementation, http://developer.android.com/guide/google/gcm/demo.html & How to setup Google Cloud Messaging for Android?
see http://developer.android.com/guide/google/gcm/index.html for detaily. There you find a tutorial and all the basic stuff