Created
January 11, 2015 14:37
-
-
Save hitenpratap/ee519ab395a357e6ef69 to your computer and use it in GitHub Desktop.
Java Code to Implement GCM Server for Android Push Notification
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.hprog99.gcm; | |
import java.io.BufferedReader; | |
import java.io.FileReader; | |
import java.io.IOException; | |
import java.io.PrintWriter; | |
import javax.servlet.ServletException; | |
import javax.servlet.annotation.WebServlet; | |
import javax.servlet.http.HttpServlet; | |
import javax.servlet.http.HttpServletRequest; | |
import javax.servlet.http.HttpServletResponse; | |
import com.google.android.gcm.server.Message; | |
import com.google.android.gcm.server.Result; | |
import com.google.android.gcm.server.Sender; | |
@WebServlet("/GCMNotification") | |
public class GCMNotification extends HttpServlet { | |
private static final long serialVersionUID = 1L; | |
// Put your Google API Server Key here | |
private static final String GOOGLE_SERVER_KEY = ""; //Server key got from Google developer console | |
static final String MESSAGE_KEY = "message"; | |
public GCMNotification() { | |
super(); | |
} | |
protected void doGet(HttpServletRequest request, | |
HttpServletResponse response) throws ServletException, IOException { | |
doPost(request, response); | |
} | |
protected void doPost(HttpServletRequest request, | |
HttpServletResponse response) throws ServletException, IOException { | |
Result result = null; | |
String share = request.getParameter("shareRegId"); | |
// GCM RedgId of Android device to send push notification | |
String regId = ""; | |
if (share != null && !share.isEmpty()) { | |
regId = request.getParameter("regId"); | |
PrintWriter writer = new PrintWriter("GCMRegId.txt"); | |
writer.println(regId); | |
writer.close(); | |
request.setAttribute("pushStatus", "GCM RegId Received."); | |
request.getRequestDispatcher("index.jsp") | |
.forward(request, response); | |
} else { | |
try { | |
BufferedReader br = new BufferedReader(new FileReader( | |
"GCMRegId.txt")); | |
regId = br.readLine(); | |
br.close(); | |
String userMessage = request.getParameter("message"); | |
Sender sender = new Sender(GOOGLE_SERVER_KEY); | |
Message message = new Message.Builder().timeToLive(30) | |
.delayWhileIdle(true).addData(MESSAGE_KEY, userMessage).build(); | |
System.out.println("regId: " + regId); | |
result = sender.send(message, regId, 1); | |
request.setAttribute("pushStatus", result.toString()); | |
} catch (IOException ioe) { | |
ioe.printStackTrace(); | |
request.setAttribute("pushStatus", | |
"RegId required: " + ioe.toString()); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
request.setAttribute("pushStatus", e.toString()); | |
} | |
request.getRequestDispatcher("index.jsp") | |
.forward(request, response); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment