기존에 ORDOID-C2기기를 안드로이드 서버로 사용하여 이벤트발생시 푸시메시지를 핸드폰 어플로 전송하는 기능을 사용하고 있었습니다.
한동안 사용을 안하다가 다시사용하려고 하니까 푸시메시지가 작동을 안합니다.
FCM전송관련 변경해야할 사항이 있는지 검색해보고 따라해봐도 잘되지를 않아서 질문을 드립니다.
고수님들의 조언 부탁드립니다.
소스는 아래와 같습니다.
package com.example.doorlockserver;
import com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.HttpEntity;
import com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.HttpResponse;
//import org.apache.http.client.HttpClient;
//import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
//import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONObject;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.List;
/**
* Created by Chung on 2016-12-16.
*/
public class HttpJsonPostThread extends Thread {
private final String address;
private final JSONObject jsonobj;
public HttpJsonPostThread(String address, JSONObject jsonobj) {
this.address = address;
this.jsonobj = jsonobj;
}
@Override
public void run() {
try {
MainActivity.report("error", "Json request: " + jsonobj.toString());
HttpClient httpclient = new DefaultHttpClient();
org.apache.http.client.methods.HttpPost httpPost = new HttpPost(address);
StringEntity se = new StringEntity(jsonobj.toString());
httpPost.setEntity(se);
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
httpPost.setHeader("Authorization", "key=AAAA7_Kq29U:APA91bE9B2_bC8KU7TP1YlK7ZCv3gSsoXQLIySKuAJC5Bu4kD1X3k8FQKpj6IZiNbkFEoraCdlEvzB7ZNVbaCj6DQBALFvYWPBP-VazXp3I6IwvLnpVcKyRx3MsupmFtVJtNayGUxMRA");
HttpResponse httpResponse = (HttpResponse) httpclient.execute(httpPost);
InputStream inputStream = httpResponse.getEntity().getContent();
StringBuilder sb = new StringBuilder();
int b;
while ((b = inputStream.read()) >= 0) sb.append((char) b);
inputStream.close();
MainActivity.report("error", "Json response: " + sb.toString());
} catch (Exception e) {
StringWriter w = new StringWriter();
e.printStackTrace(new PrintWriter(w));
MainActivity.report("error", w.toString());
}
}
public static boolean pushTextMessage(String title, String message, String token) {
try {
JSONObject jsonobj = new JSONObject();
jsonobj.put("data", new JSONObject());
jsonobj.getJSONObject("data").put("title", title);
jsonobj.getJSONObject("data").put("text", message);
jsonobj.put("to", token);
Thread thread = new HttpJsonPostThread("https://fcm.googleapis.com/fcm/send", jsonobj);
thread.start();
return true;
} catch (Exception e) {
StringWriter w = new StringWriter();
e.printStackTrace(new PrintWriter(w));
MainActivity.report("error", w.toString());
}
return false;
}
public static void pushTextMessage(String title, String message, List<String> tokens) {
int nsuccess = 0;
for (String token : tokens) if (token.length() > 0) if (pushTextMessage(title, message, token)) nsuccess++;
}
}