Click here to Skip to main content
15,912,205 members
Articles / Web Development / ASP.NET
Tip/Trick

Android GCM Push Notification

Rate me:
Please Sign up or sign in to vote.
4.83/5 (16 votes)
6 Aug 2012CPOL 271.7K   19   51
Android GCM Push Notification

Introduction

In this tip, I will try to explain how we can integrate a push notification service for Android using ASP.NET and C#. We all know that mobile applications are booming the market trend. Some custom mobile applications use the push notification service to give updates to application users. Here I will explain how we can use Google’s GCM push notification service.

Using the Code 

Class file "AndroidGCMPushNotification.cs":

C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;
using System.Text;
using System.IO;
using System.Security.Cryptography.X509Certificates;
using System.Net.Security;
using System.Collections.Specialized;

public class AndroidGCMPushNotification
{
	public AndroidGCMPushNotification()
	{
		//
		// TODO: Add constructor logic here
		//
	}
    public string SendNotification(string deviceId, string message)
    {
        string GoogleAppID = "google application id";        
        var SENDER_ID = "9999999999";
        var value = message;
        WebRequest tRequest;
        tRequest = WebRequest.Create("https://android.googleapis.com/gcm/send");
        tRequest.Method = "post";
        tRequest.ContentType = " application/x-www-form-urlencoded;charset=UTF-8";
        tRequest.Headers.Add(string.Format("Authorization: key={0}", GoogleAppID));

        tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));
        
        string postData = "collapse_key=score_update&time_to_live=108&
        delay_while_idle=1&data.message=" + value + "&data.time=" + 
        System.DateTime.Now.ToString() + "®istration_id=" + deviceId + "";
        Console.WriteLine(postData);
        Byte[] byteArray = Encoding.UTF8.GetBytes(postData);
        tRequest.ContentLength = byteArray.Length;

        Stream dataStream = tRequest.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();

        WebResponse tResponse = tRequest.GetResponse();

        dataStream = tResponse.GetResponseStream();

        StreamReader tReader = new StreamReader(dataStream);

        String sResponseFromServer = tReader.ReadToEnd();
        
        tReader.Close();
        dataStream.Close();
        tResponse.Close();
        return sResponseFromServer;
    }
}

You can call SendNotification function by passing device Id and Message.

C#
AndroidGCMPushNotification apnGCM = new AndroidGCMPushNotification();

string strResponse =
apnGCM.SendNotification("17BA0791499DB908433B80F37C5FBC89B870084B",
"Test Push Notification message ");

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Technical Lead
India India
Project Lead
MCTS - .NET Framework 4.0, Web Applications

Blog : http://thakkermukund.wordpress.com
Twitter@thakkermukund

Don't code today, what you can't debug tomorrow!
Everything makes sense in someone's mind

Comments and Discussions

 
QuestionCan we send push notification to bulk mobiles device tokens and get status of each mobile device token? Pin
Member 101345284-Dec-14 18:26
Member 101345284-Dec-14 18:26 
GeneralExcellent Work Pin
Rungta Atul2-Dec-14 9:13
Rungta Atul2-Dec-14 9:13 
Question401 Error Pin
Denysiuk Roman26-Sep-14 4:38
Denysiuk Roman26-Sep-14 4:38 
QuestionERROR Pin
Prashant77220-Aug-14 20:12
Prashant77220-Aug-14 20:12 
QuestionID's mess Pin
leos7930-Jun-14 20:20
leos7930-Jun-14 20:20 
AnswerRe: ID's mess Pin
leos7930-Jun-14 21:13
leos7930-Jun-14 21:13 
QuestionWebException Pin
nugayem19-Jun-14 5:11
nugayem19-Jun-14 5:11 
AnswerRe: WebException Pin
nugayem19-Jun-14 21:47
nugayem19-Jun-14 21:47 
I have been able to resolve the issue by creating a SERVER API and while-filtering the IP address
QuestionError=MissingRegistration Pin
Durul CAMLI18-Jun-14 21:31
Durul CAMLI18-Jun-14 21:31 
QuestionException Pin
Member 107187335-Jun-14 3:13
Member 107187335-Jun-14 3:13 
AnswerRe: Exception Pin
Mukund Thakker5-Jun-14 19:44
professionalMukund Thakker5-Jun-14 19:44 
Question"&registration_id" missing in code example Pin
Loupias24-Apr-14 3:40
Loupias24-Apr-14 3:40 
QuestionSchedule Push Notifications Pin
nano2k25-Sep-13 11:05
nano2k25-Sep-13 11:05 
Questionhow to get deviceId Pin
ashish.shedge26-Aug-13 19:54
ashish.shedge26-Aug-13 19:54 
QuestionError=MissingRegistration Pin
Member 780420812-Aug-13 23:01
Member 780420812-Aug-13 23:01 
AnswerRe: Error=MissingRegistration Pin
Mukund Thakker19-Aug-13 0:18
professionalMukund Thakker19-Aug-13 0:18 
GeneralRe: Error=MissingRegistration Pin
Gunjan Dave10-Feb-14 1:47
Gunjan Dave10-Feb-14 1:47 
GeneralRe: Error=MissingRegistration Pin
Mukund Thakker10-Feb-14 18:18
professionalMukund Thakker10-Feb-14 18:18 
GeneralRe: Error=MissingRegistration Pin
Member 1096283021-Jul-14 23:31
Member 1096283021-Jul-14 23:31 
Questionthanks Pin
Almostafa Said Elsisy23-May-13 1:27
Almostafa Said Elsisy23-May-13 1:27 
QuestionMissingRegistrattion Pin
Member 940212010-May-13 2:55
Member 940212010-May-13 2:55 
QuestionNull Messages are sending Pin
RAMESHVELAYUDHAN1-Apr-13 19:18
RAMESHVELAYUDHAN1-Apr-13 19:18 
AnswerRe: Null Messages are sending Pin
Member 102519494-Sep-13 21:18
Member 102519494-Sep-13 21:18 
GeneralRe: Null Messages are sending Pin
RAMESHVELAYUDHAN8-Oct-13 18:37
RAMESHVELAYUDHAN8-Oct-13 18:37 
GeneralRe: Null Messages are sending Pin
Mukund Thakker8-Oct-13 18:51
professionalMukund Thakker8-Oct-13 18:51 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.