Click here to Skip to main content
Click here to Skip to main content

Android GCM Push Notification

By , 6 Aug 2012
 

Introduction

In this article 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"  

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.

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)

About the Author

Mukund Thakker
Software Developer (Senior)
India India
Member
Software Developer
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

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
QuestionMissingRegistrattionmemberMember 940212010 May '13 - 2:55 
QuestionNull Messages are sendingmemberRAMESHVELAYUDHAN1 Apr '13 - 19:18 
Bugerror occurred while processing the request to user devicememberkareemgamal10 Sep '12 - 3:26 
GeneralRe: error occurred while processing the request to user devicememberHugo Saraiva28 Feb '13 - 8:20 
QuestionAn error occurred while processing your request.memberkareemgamal10 Sep '12 - 3:25 
AnswerRe: An error occurred while processing your request.memberHugo Saraiva28 Feb '13 - 8:20 
GeneralRe: An error occurred while processing your request.memberRAMESHVELAYUDHAN1 Apr '13 - 19:14 

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

Permalink | Advertise | Privacy | Mobile
Web01 | 2.6.130516.1 | Last Updated 6 Aug 2012
Article Copyright 2012 by Mukund Thakker
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid