Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does GCM work ? (google cloud messaging for Android)

I have an android app which i connect to my server using REST API (django rest framework)

here is a scenario(and maybe my plan):

  • data is sent back and forth as json
  • I have a user model and a task model where users are owners of some task.
  • Users typicaly sends a task to another user (with json similar to this: {"owner": "exampleuser", "from":"otheruser", "content":"example" ...} using POST method) -The tasks has a boolean field "completed" and is deleted once the task is completed (using PUT or PATCH method: completed = true,)
  • once a new task gets created using POST method, the only way users can see any activities concerning their tasks is through an android activity that uses GET method to get a list of all the tasks owned by the user, by looking up all objects owned by the user

So my questions are:

  1. Instead of having the user to check the app everytime. How can I use GCM to push notify the user?
  2. How will it tell which user or device to send the push notification to?
  3. How does GCM knows when there has been a change to tasks or when a user POST a task?
like image 479
user3149525 Avatar asked Apr 10 '14 16:04

user3149525


People also ask

How does Google Cloud Messaging work?

The first step in GCM is that a third-party server (such as an email server) sends a request to Google's GCM server. This server then sends the message to your device, through that open connection. The Android system looks at the message to determine which app it's for, and starts that app.

What is difference between GCM and FCM in Android?

FCM is the new version of GCM under the Firebase brand. It inherits GCM's core infrastructure to make sure we continue to deliver messages reliably on Android, iOS and Chrome. Show activity on this post. FCM is the new version of GCM under the Firebase brand.

What is difference between GCM and FCM?

FCM is a cloud platform that provides messages and push notifications for operating systems- ios and Android, and websites as well. Google Cloud Messaging is a messaging service that enables the message transfer from server to clients apps.


1 Answers

Android keeps one active connection to Google's servers, but it doesn't use much power or data, because no traffic is sent along it until something sends a GCM message to an app on your phone. There's only one connection on the phone, used by all apps: installing a new app that uses GCM doesn't add any extra load.

The first step in GCM is that a third-party server (such as an email server) sends a request to Google's GCM server. This server then sends the message to your device, through that open connection. The Android system looks at the message to determine which app it's for, and starts that app. The app must have registered with Android to use GCM, and it must have the relevant permission. When the app starts, it might create a notification straight away with the data from the message. GCM messages are very limited in size, so the app might instead open a normal connection to the third-party server to get more information (for example, downloading the headers of new emails).

The advantage of using push notifications is that apps don't have to run at regular intervals to check for new data, saving both power and data. The advantage of having a centralized mechanism like GCM is that the device only needs one open network connection and the Android GCM system is the only thing that needs to keep running, rather than each app having to stay running in the background to keep its own network connection to its own server.

like image 161
Sachin Tyagi Avatar answered Nov 15 '22 11:11

Sachin Tyagi