How to send notification to Android app from Java server using GCM?

后端 未结 4 543
傲寒
傲寒 2020-12-08 02:43

I have my simple Android application which uses REST web service. Now I want to sent notification from my REST web service to Android application using GCM.

How do t

相关标签:
4条回答
  • 2020-12-08 03:18

    Follow this URL https://firebase.google.com/docs/cloud-messaging/send-message

    FCM URL

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

    Notification Key

    private String ANDROID_NOTIFICATION_KEY = "Your key";
    

    Java Code

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

    That's it !!!

    0 讨论(0)
  • 2020-12-08 03:23

    This is a function using to send notification from java to the app android. this code use JSONObject you must add this jar into project buildpath.

    note:I use 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();
    }
    }
    

    good luck

    0 讨论(0)
  • 2020-12-08 03:28
    1. package com.test;

      import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL;

      public class Firebase {

      public static void main(String[] args) throws IOException {         final
      

      String apiKey = "AAAAqf1B9uQ:**********_1MoeQBVPbVROXuyD4ERyV-i6nva0LAic9uRotN80C9utoaGL9Sp1GjrPr5-mtJBlxVNbuqG1zeg9LBnslZw-vyud3jW-11SWDfLBB26bcHuAi8bdnQCPcj3DWKX2h"; URL url = new URL("https://fcm.googleapis.com/fcm/send"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); System.setProperty("javax.net.debug","all"); conn.setDoOutput(true); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/json"); conn.setRequestProperty("Authorization", "key=" + apiKey);

          conn.setDoOutput(true);
      
          String input = "{\r\n\"to\":
      

      \"fdaxKOmRcAI:APA91bEXILacYEjypsbusKXHV_TuEzt_vsqhI5OxH-******************-l2qGIORSiE0W5B2d74yjXAz60l\", \r\n\"notification\": {\r\n\"title\" : \" title \",\r\n\"body\" : \" Body of a single vijay \"\r\n}\r\n}";

                  OutputStream os = conn.getOutputStream();       os.write(input.getBytes());         os.flush();         os.close();
      
          int responseCode = conn.getResponseCode();
          System.out.println("\nSending 'POST' request to URL : " + url);
          System.out.println("Post parameters : " + input);
          System.out.println("Response Code : " + responseCode);
      
          BufferedReader in = new BufferedReader(new
      

      InputStreamReader(conn.getInputStream())); String inputLine; StringBuffer response = new StringBuffer();

          while ((inputLine = in.readLine()) != null) {
              response.append(inputLine);         }       in.close();
      
          // print result         System.out.println(response.toString());
      
      }
      

      }

      1. List item
    0 讨论(0)
  • 2020-12-08 03:33

    I have created a Java-based test server, implemented as a maven plugin, for the GCMUtils project: https://code.google.com/p/gcmutils/wiki/MavenPlugin#Test_server

    Here is the source code: https://github.com/jarlehansen/gcmutils/tree/master/gcm-test-server

    Source for the maven plugin: https://github.com/jarlehansen/gcmutils/tree/master/gcmutils-maven-plugin

    Maybe this can help you get started?

    0 讨论(0)
提交回复
热议问题