Как отправить уведомление на Android-приложение с сервера Java с помощью GCM?

У меня есть мое простое приложение для Android, которое использует веб-службу REST. Теперь я хочу отправить уведомление с моего веб-сервиса REST в приложение Android с помощью GCM.

Как это сделать? Есть ли простой учебник для этого требования? Я искал и нашел Google API, но я этого не понимаю.

Я создал тестовый сервер на Java, реализованный как плагин maven, для проекта GCMUtils: https://code.google.com/p/gcmutils/wiki/MavenPlugin#Test_server

Вот исходный код: https://github.com/jarlehansen/gcmutils/tree/master/gcm-test-server

Источник для плагина maven: https://github.com/jarlehansen/gcmutils/tree/master/gcmutils-maven-plugin

Может быть, это поможет вам начать?

Следуйте этому URL https://firebase.google.com/docs/cloud-messaging/send-message.

URL-адрес FCM

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

Ключ уведомления

 private String ANDROID_NOTIFICATION_KEY = "Your key"; 

Код 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()); } 

Это оно !!!

Это функция, используемая для отправки уведомлений от java на Android-приложение. Этот код использует JSONObject, вы должны добавить эту банку в путь реализации проекта.

Примечание: я использую 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(); } } 

удачи

Intereting Posts
Android распознавание речи: startActivityForResult () не работает Узнайте, будет ли текущая деятельность в конечном итоге выполняться в конечном итоге, после того как незавершенные отделочные операции исчезнут Изменение программного режима сети Создание GoogleApiClient для нескольких действий Ошибка Strange Gradle Поделитесь потоковым видеороликом в андроиде через ACTION_SEND Побочные эффекты вызова Activity.setContentView () дважды подряд OnCompletion не вызывается, когда я ожидаю, что он Как убить текущую задачу в android Android: лучше ли начинать и останавливать службу каждый раз, когда это необходимо, или разрешить запуск и привязку службы и привязать ее к ней? Java.net.SocketException: sendto failed: EPIPE (Сломанная труба) через соединение с данными на localhost Android int заменен на android.R.integer в eclipse Камера Android – иногда, когда я фотографирую, приложение зависает, и камера не используется Как свернуть анимацию AppBarLayout без нажатия на содержимое, похожее на WhatsApp Android? Как загрузить системные шрифты в Libgdx? В основном для андроида. И как я могу получить список доступных шрифтов?