Most likely, your app needs real time updates for dynamic content or for more user engagement. Earlier we used to have polling mechanism to refresh the data. Polling is too expensive to the system as it consume server and client resources even if there are no updates. To solve this we need push notification from server and here GCM (Google cloud messaging) help us.
Google Cloud Messaging is a free service from Google to send push notifications to device on demand.
If you want to learn more about Google Cloud technology, then please refer to this article on google cloud certification by Intellipaat.
Enabling GCM to your application:
There are two part of it. One is authentication of server and another is identification of device. We will go through step by step for each part.
1 . Server Authentication:
a ) Enable API : To get the server key go to Google developer console and select your project from top drop down menu. Once you select your project you can see your project details. Please note down your project number.
Click on the APIS & auth and select API . In mobile API, select “Cloud Messaging for Android” and enable the API.
b ) Create a Server Key : To create a server key go to credential section and in ADD CREDENTIAL Drop Down select 1st option Server key.
once you add server key you can see your server key listed in the API KEY section.
2. Device Identification :
Upon registering device with the GCM server, it will return registrationId. The GCM registrationId is an identifier to identify the mobile device. We need to store this on our server to send the push notification.
a) Register device with GCM server
First of all we need to add permission to your AndroidManifest.xml for GCM. Below two lines we need to add.
<uses-permission android:name="<YOUR APP PAKGE NAME>.permission.C2D_MESSAGE" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
b ) Add your notification receiver in AndroidManifest.xml file.
<receiver android:name=".GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND"> <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.applozic.mobicomkit.sample" /> </intent-filter> </receiver>
You can see applozic sdk sample code for reference.
c ) Getting RegistrationId.
Best thing is google play service provide convenient apis for gcm registration. Following is the two lines of code which is required to get the registrationId of device.
GoogleCloudMessaging gcm =GoogleCloudMessaging.getInstance(mActivity);
String regid = gcm.register(PROJECT_NUMBER);
Once we get the registrationId, send this registration-Id to your server. Server will use this device registration-Id while sending push notification to device.
You can find full code snippet from applozic android SDK on github.
Want to bring real time communication capabilities to your apps?
Sign up now: Applozic