Android REST= Webサービスを使用するアプリケーション。今すぐ、REST Webサービスto Android GCMを使用したアプリケーション。
どうやって?この要件に関する簡単なチュートリアルはありますか? Google APIを検索して見つけましたが、わかりません。
GCMUtilsプロジェクト用に、mavenプラグインとして実装されたJavaベースのテストサーバーを作成しました: 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
たぶん、これはあなたが始めるのを助けることができますか?
これはJavaからAndroidアプリに通知を送信するために使用する関数です。このコードはJSONObjectを使用し、このjarをプロジェクトビルドパスに追加する必要があります。
注:私は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();
}
}
がんばろう
パッケージ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;
パブリッククラスFirebase {
public static void main(String[] args) throws IOException { final
文字列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 \":{\ r\n\"title \":\"title \"、\ r\n\"body \":\ "単一のビジェイのボディ\"\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()));文字列inputLine; StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine); } in.close();
// print result System.out.println(response.toString());
}
}
このURLに従ってください https://firebase.google.com/docs/cloud-messaging/send-message
FCM URL
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());
}
それでおしまい !!!