¿Cómo enviar notificaciones a la aplicación de Android desde el servidor de Java mediante GCM?

Tengo mi sencilla aplicación de Android que utiliza el servicio web REST. Ahora quiero enviar la notificación de mi servicio web REST a la aplicación de Android usando GCM.

¿Cómo hacer esto? ¿Hay algún tutorial simple para este requisito? Busqué y encontré Google API, pero no entiendo eso.

He creado un servidor de prueba basado en Java, implementado como complemento de maven, para el proyecto GCMUtils: https://code.google.com/p/gcmutils/wiki/MavenPlugin#Test_server

Aquí está el código fuente: https://github.com/jarlehansen/gcmutils/tree/master/gcm-test-server

Fuente para el complemento de maven: https://github.com/jarlehansen/gcmutils/tree/master/gcmutils-maven-plugin

Tal vez esto puede ayudarle a empezar?

Siga esta URL https://firebase.google.com/docs/cloud-messaging/send-message

URL de FCM

private String ANDROID_NOTIFICATION_URL = "https://fcm.googleapis.com/fcm/send" 

Clave de notificación

 private String ANDROID_NOTIFICATION_KEY = "Your key"; 

Código Java

 private void sendAndroidNotification(String deviceToken,String message,String title) throws IOException { OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); JSONObject obj = new JSONObject(); JSONObject msgObject = new JSONObject(); msgObject.put("body", message); msgObject.put("title", title); msgObject.put("icon", ANDROID_NOTIFICATION_ICON); msgObject.put("color", ANDROID_NOTIFICATION_COLOR); obj.put("to", deviceToken); obj.put("notification",msgObject); RequestBody body = RequestBody.create(mediaType, obj.toString()); Request request = new Request.Builder().url(ANDROID_NOTIFICATION_URL).post(body) .addHeader("content-type", CONTENT_TYPE) .addHeader("authorization", "key="+ANDROID_NOTIFICATION_KEY).build(); Response response = client.newCall(request).execute(); logger.debug("Notification response >>>" +response.body().string()); } 

Eso es !!!

Esta es una función que utiliza para enviar notificaciones desde java a la aplicación android. Este código utiliza JSONObject debe agregar este tarro al proyecto buildpath.

Nota: Yo uso fcm

  import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import org.json.JSONObject; public class FcmNotif { public final static String AUTH_KEY_FCM ="AIzB***********RFA"; public final static String API_URL_FCM = "https://fcm.googleapis.com/fcm/send"; // userDeviceIdKey is the device id you will query from your database public void pushFCMNotification(String userDeviceIdKey, String title, String message) throws Exception{ String authKey = AUTH_KEY_FCM; // You FCM AUTH key String FMCurl = API_URL_FCM; URL url = new URL(FMCurl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setUseCaches(false); conn.setDoInput(true); conn.setDoOutput(true); conn.setRequestMethod("POST"); conn.setRequestProperty("Authorization","key="+authKey); conn.setRequestProperty("Content-Type","application/json"); JSONObject json = new JSONObject(); json.put("to",userDeviceIdKey.trim()); JSONObject info = new JSONObject(); info.put("title", title); // Notification title info.put("body", message); // Notification body info.put("image", "https://lh6.googleusercontent.com/-sYITU_cFMVg/AAAAAAAAAAI/AAAAAAAAABM/JmQNdKRPSBg/photo.jpg"); info.put("type", "message"); json.put("data", info); System.out.println(json.toString()); OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); wr.write(json.toString()); wr.flush(); conn.getInputStream(); } } 

buena suerte

  • Cómo pasar un valor de cadena a webView de una actividad
  • Cambios en una página web a través de JavaScript que no aparecen en WebView. ¿Hay una manera de forzar el WebView para volver a dibujar su contenido?
  • Cambiar la selección de texto a rtl en lugar de predeterminar ltr
  • Servidor de back-end para aplicaciones móviles
  • Utilizar ChromeView en la aplicación para Android
  • Android WebView no sólo de vídeo audio
  • ¿Por qué utilizar sqlite Database en Android?
  • Vista web de Android: evita que los gestos táctiles se pasen a la vista principal de los padres
  • Android 4.1 webview javascript no funciona.
  • Error de WebView. Haciendo una aplicación para Android para ver mi sitio web
  • Envoltura de HTML en una aplicación para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.