Click here to Skip to main content
12,404,895 members (70,098 online)
Click here to Skip to main content
Add your own
alternative version


17 bookmarked

Android GCM Push Notification

, 6 Aug 2012 CPOL
Rate this:
Please Sign up or sign in to vote.
Android GCM Push Notification


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":

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("");
        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 + "";
        Byte[] byteArray = Encoding.UTF8.GetBytes(postData);
        tRequest.ContentLength = byteArray.Length;

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

        WebResponse tResponse = tRequest.GetResponse();

        dataStream = tResponse.GetResponseStream();

        StreamReader tReader = new StreamReader(dataStream);

        String sResponseFromServer = tReader.ReadToEnd();
        return sResponseFromServer;

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

AndroidGCMPushNotification apnGCM = new AndroidGCMPushNotification();

string strResponse =
"Test Push Notification message ");


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


About the Author

Mukund Thakker
Technical Lead
India India
Project Lead
MCTS - .NET Framework 4.0, Web Applications

Blog :

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

You may also be interested in...

Comments and Discussions

QuestionHow to send Images in notification Pin
Member 1158380322-Jul-16 3:16
memberMember 1158380322-Jul-16 3:16 
QuestionLine of Code and googleappID Pin
Member 121249087-Jun-16 23:20
memberMember 121249087-Jun-16 23:20 
QuestionWhere do I find the values that I need to insert? Pin
LorenzKaiser29-Mar-16 22:47
memberLorenzKaiser29-Mar-16 22:47 
AnswerRe: Where do I find the values that I need to insert? Pin
Gayan Buddhika31-May-16 15:56
memberGayan Buddhika31-May-16 15:56 
QuestionWant to send push notification to bulk devices Pin
pdsweetpd22815-Mar-16 1:53
memberpdsweetpd22815-Mar-16 1:53 
QuestionStill Getting 401 Unauthorized Pin
Azurath3-Jan-16 20:09
memberAzurath3-Jan-16 20:09 
Generalworking fine for me Pin
prashantbathani11-Dec-15 2:38
memberprashantbathani11-Dec-15 2:38 
QuestionGetting error SenderId MisMatched Pin
Member 1035665225-May-15 18:59
memberMember 1035665225-May-15 18:59 
GeneralPlagiarism alert Pin
Sriram Sakthivel26-Mar-15 2:53
memberSriram Sakthivel26-Mar-15 2:53 
GeneralRe: Plagiarism alert Pin
Mukund Thakker26-Mar-15 19:14
professionalMukund Thakker26-Mar-15 19:14 
Questionsending a message to multiple registration_id at a time Pin
mannmadhan26-Feb-15 2:18
membermannmadhan26-Feb-15 2:18 
QuestionGetting also MissingRegistration Pin
Member 953115620-Jan-15 21:54
memberMember 953115620-Jan-15 21:54 
AnswerRe: Getting also MissingRegistration Pin
Mukund Thakker22-Jan-15 1:02
professionalMukund Thakker22-Jan-15 1:02 
SuggestionNo need to "SENDER_ID" Pin
Bebosh9-Dec-14 3:00
memberBebosh9-Dec-14 3:00 
GeneralRe: No need to "SENDER_ID" Pin
Member 1080461018-Apr-16 3:13
memberMember 1080461018-Apr-16 3:13 
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
memberMember 101345284-Dec-14 18:26 
GeneralExcellent Work Pin
Rungta Atul2-Dec-14 9:13
memberRungta Atul2-Dec-14 9:13 
Question401 Error Pin
tundrov26-Sep-14 4:38
membertundrov26-Sep-14 4:38 
QuestionERROR Pin
Prashant77220-Aug-14 20:12
memberPrashant77220-Aug-14 20:12 
QuestionID's mess Pin
leos7930-Jun-14 20:20
memberleos7930-Jun-14 20:20 
AnswerRe: ID's mess Pin
leos7930-Jun-14 21:13
memberleos7930-Jun-14 21:13 
QuestionWebException Pin
nugayem19-Jun-14 5:11
membernugayem19-Jun-14 5:11 
AnswerRe: WebException Pin
nugayem19-Jun-14 21:47
membernugayem19-Jun-14 21:47 
QuestionError=MissingRegistration Pin
Durul CAMLI18-Jun-14 21:31
memberDurul CAMLI18-Jun-14 21:31 
QuestionException Pin
Member 107187335-Jun-14 3:13
memberMember 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
memberLoupias24-Apr-14 3:40 
QuestionSchedule Push Notifications Pin
nano2k25-Sep-13 11:05
membernano2k25-Sep-13 11:05 
Questionhow to get deviceId Pin
ashish.shedge26-Aug-13 19:54
memberashish.shedge26-Aug-13 19:54 
QuestionError=MissingRegistration Pin
Member 780420812-Aug-13 23:01
memberMember 780420812-Aug-13 23:01 
AnswerRe: Error=MissingRegistration Pin
Mukund Thakker19-Aug-13 0:18
memberMukund Thakker19-Aug-13 0:18 
GeneralRe: Error=MissingRegistration Pin
Gunjan Dave10-Feb-14 1:47
memberGunjan 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
memberMember 1096283021-Jul-14 23:31 
Questionthanks Pin
Almostafa Said Elsisy23-May-13 1:27
memberAlmostafa Said Elsisy23-May-13 1:27 
QuestionMissingRegistrattion Pin
Member 940212010-May-13 2:55
memberMember 940212010-May-13 2:55 
QuestionNull Messages are sending Pin
memberRAMESHVELAYUDHAN1-Apr-13 19:18 
AnswerRe: Null Messages are sending Pin
Member 102519494-Sep-13 21:18
memberMember 102519494-Sep-13 21:18 
GeneralRe: Null Messages are sending Pin
memberRAMESHVELAYUDHAN8-Oct-13 18:37 
GeneralRe: Null Messages are sending Pin
Mukund Thakker8-Oct-13 18:51
memberMukund Thakker8-Oct-13 18:51 
Bugerror occurred while processing the request to user device Pin
kareemgamal10-Sep-12 3:26
memberkareemgamal10-Sep-12 3:26 
GeneralRe: error occurred while processing the request to user device Pin
Hugo Saraiva28-Feb-13 8:20
memberHugo Saraiva28-Feb-13 8:20 
QuestionAn error occurred while processing your request. Pin
kareemgamal10-Sep-12 3:25
memberkareemgamal10-Sep-12 3:25 
AnswerRe: An error occurred while processing your request. Pin
Hugo Saraiva28-Feb-13 8:20
memberHugo Saraiva28-Feb-13 8:20 
GeneralRe: An error occurred while processing your request. Pin
memberRAMESHVELAYUDHAN1-Apr-13 19:14 
GeneralRe: An error occurred while processing your request. Pin
Almostafa Said Elsisy22-May-13 9:22
memberAlmostafa Said Elsisy22-May-13 9:22 

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.

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