Top Banner
GCM Google Cloud Messaging for Android Ahsanul Karim [email protected]
21
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: GCM for Android

GCMGoogle Cloud Messaging for Android

Ahsanul [email protected]

Page 2: GCM for Android

GCM: Introduction

-GCM (Google Cloud Messaging) is a free service that helps developers send data from servers to their Android applications on Android devices.-Using GCM we can push

--lightweight message to applications telling that there is new data to be fetched from the server or --a message containing up to 4kb of payload data (e.g: instant messaging apps).

-This can eliminate continuous query to server for updates using background services

Page 3: GCM for Android

GCM: Characteristics● Allows 3rd-party application servers to send messages to their

Android applications.● GCM makes no guarantees about delivery or the order of

messages.● Application on an Android device doesn't need to be running to

receive messages. ● Requires devices running Android 2.2 or higher (with Google Play

Store application installed), or or an emulator running Android 2.2 with Google APIs.

● Uses an existing connection for Google services. For pre-3.0 devices, this requires users to set up their Google account on their mobile devices. A Google account is not a requirement on devices running Android 4.0.4 or higher.

Page 4: GCM for Android

GCM: Architectural OverviewKey Terms:key terms and concepts involved in GCM are divided into these categories:● Components — The physical entities that play a role in

GCM.● Credentials — The IDs and tokens that are used in

different stages of GCM to ensure that all parties have been authenticated, and that the message is going to the correct place.

Page 5: GCM for Android

GCM Architecture: Components

Components

Mobile Device The device that is running an Android application that uses GCM. This must be a 2.2 Android device that has Google Play Store installed, and it must have at least one logged in Google account if the device is running a version lower than Android 4.0.4. Alternatively, for testing you can use an emulator running Android 2.2 with Google APIs.

3rd-party Application Server

An application server that developers set up as part of implementing GCM in their applications. The 3rd-party application server sends data to an Android application on the device via the GCM server.

GCM Servers The Google servers involved in taking messages from the 3rd-party application server and sending them to the device.

Page 6: GCM for Android

GCM Architecture: Components

Page 7: GCM for Android

GCM Architecture: Components

Credentials

Sender ID A project ID you acquire from the API console to identify an Android application that is permitted to send messages to the device.

Application ID The Android application that is registering to receive messages.

Registration ID An ID issued by the GCM servers to the Android application that allows it to receive messages.

Google User Account

For GCM to work, the mobile device must include at least one Google account if the device is running a version lower than Android 4.0.4.

Sender Auth Token

An API key that is saved on the 3rd-party application server that gives the application server authorized access to Google services.

Page 8: GCM for Android

GCM: Implementation

1. Enabling GCM: An Android application running on a mobile device registers to receive messages.

2. Sending a Message: A 3rd-party application server sends messages to the device. (we'll do it with php)

3. Receiving a Message: An Android application receives a message from a GCM server.

Page 9: GCM for Android

GCM: Implementation Steps (1)● Goto https://code.google.com/apis/console ● Create a project: GCM_test● Browser link has changed as https://code.google.com/apis/console/?

pli=1#project:94384365614:services● it contains project id (94384365614 in this example) ● We required that in our application as sender id.

Page 10: GCM for Android

GCM: Implementation Steps (2)● In the main Google APIs Console page, select Services. Turn the Google Cloud

Messaging toggle to ON. In the Terms of Service page, accept the terms.

Page 11: GCM for Android

GCM: Implementation Steps (3)● In the main Google APIs Console page, select API Access. Now you can see

there is API key if you use that key your application can receive messages from any server & if you want to restrict servers you can generate new server key using button there as “Create new server key…”.

Page 12: GCM for Android

GCM: Implementation Steps (3.1)

● Now we have Sender ID and API KEY○ Sender ID: 94384365614○ API KEY: AIzaSyBFhGpJswkvMxMTElfAQeMUskG13ii7s1Q

Page 13: GCM for Android

GCM: Implementation Steps (4)Create new Android Project:

Page 14: GCM for Android

GCM: Implementation Steps (5)Copy the gcm.jar file from: SDK~PATH/extras/google/gcm/gcm-client/dist directory to your application classpath. As external jar.

Page 15: GCM for Android

GCM: Implementation Steps (6)Permissions in Manifest

Page 16: GCM for Android

GCM: Implementation Steps (7)Add GCM Receiver

Page 17: GCM for Android

GCM: Implementation Steps (8)Add GCM Receiver

Page 18: GCM for Android

GCM: Implementation Steps (9)Add GCMIntentService extending GCMBaseIntentService and add the service in Manifest:

Page 19: GCM for Android

GCM: Implementation Steps (10)Register:

Unregister:

Page 20: GCM for Android

GCM: Implementation Steps (11)Receive Message

Page 21: GCM for Android

GCM: Implementation Steps (12)Send Message from Server