Click here to Skip to main content
15,879,535 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 268.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

 
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 
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 
Bugerror occurred while processing the request to user device Pin
kareemgamal10-Sep-12 3:26
kareemgamal10-Sep-12 3:26 
GeneralRe: error occurred while processing the request to user device Pin
Hugo Saraiva28-Feb-13 8:20
Hugo Saraiva28-Feb-13 8:20 
QuestionAn error occurred while processing your request. Pin
kareemgamal10-Sep-12 3:25
kareemgamal10-Sep-12 3:25 
AnswerRe: An error occurred while processing your request. Pin
Hugo Saraiva28-Feb-13 8:20
Hugo Saraiva28-Feb-13 8:20 
GeneralRe: An error occurred while processing your request. Pin
RAMESHVELAYUDHAN1-Apr-13 19:14
RAMESHVELAYUDHAN1-Apr-13 19:14 

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.