FCM Workflow using GCM Agenda • • • • • • • • 2 Polling Mechanism What is GCM Need / advantages of GCM GCM Architecture Working of GCM GCM – Send to Sync [ HTTP ] and Send Data [ XMPP ] Google Cloud Messaging – APIs Implementation Existing FCM uses Polling Any new updates ? No Any new updates ? No Any new updates ? YES Polling is simple to implement, But Polling consumes lot of battery , resource. Extra Network Usages. 3 GCM 4 What is GCM • GCM stands for Google Cloud Messaging. • It is a free service that allows you to send data from your servers to your users and vice versa. • Handles queuing of messages and delivery to the target application. 5 Need / advantages of GCM • Application does not need to be running in the background for receiving data messages. The system will wake up the Android application via Intent broadcast when the message arrives. • Lower cost and better tracking than SMS • Scalability & extensibility • GCM is completely free no matter how big your messaging requirements 6 GCM Architecture 7 Working of GCM 1.Request for Registration 2.Reply with Registration Id GCM 5. Send Message Mobile App 3.Send Registration Id 8 4. Send message {RegId, msg } GCM – Send to Sync [HTTP] 2. Send Notification message GCM Mobile App 3. Download data 9 1. Send Notification message GCM – Send Data [ XMPP ] Send message GCM Persistent XMPP connection Mobile App Send message 10 Google Cloud Messaging – APIs Time To Live and Delay While Idle Multiple Senders Message Multicasting 11 Implementation GCM Server • Creating a Google API project • Enabling the GCM Service 12 Implementation Mobile App Copy the required libs Add a broadcast receiver Make changes to the manifest 13 Wire it up in your activity Add an Intent service Implementation Application Server • Expose Service to receive and store user information and GCM registration Id. • Send message to GCM service. 14 Minimum requirements ( device side ) • Android 2.2 + • Google Play Store application should be installed • Internet connection • Google account ( device version < 4.0.4 ) • For Developer Emulator with Google APIs 15 References • https://developer.android.com/google/gcm/index.html • Presentation by Francesco Nerieri https://developers.google.com/events/io/sessions/324893448 16 Thank you Any questions?