본문 바로가기

자료

C2DM 발송 테스트 소스


C2DM 관련 설정은 완료된것으로 전제 한다.

이는 단순히 메세지 발송이 잘되는지 안되는지를 확인하기 위한 소스다.

인터넷 어디선가 가져온 소스를 약간 수정 했다.


import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

/**
* 안드로이드 폰에 메세지를 전송하는 클래스
* @author inforex
*
*/
public class PushAndroid {
private static String HOST = "http://android.apis.google.com/c2dm/send";
private static String AUTH = "DQAAAMIAAAA85iz..............";

// 디바이스 토큰 목록 가져오기
private static String[] arrId = {
//갤스
"APA91bE4iEm3_nRakf3uAK..............",
"APA91bHVQMqKckWWzPU..............",
""
};

/**
* 안드로이드 폰에 메세지를 전송 준비
* @param args : regID
* @param msg : message
* @throws Exception
*/
public static void main(String[] args){
for (int i = 0; i < arrId.length; i++) {
try {
androidPush(arrId[i], "타이틀", "메세지 내용");
System.out.println("indexNo :"+i);
} catch (Exception e) {
e.printStackTrace();
}
}
}

/**
* 서버에서 안드로이드 폰으로 메세지를 전송
* @param regId
* @param title
* @param msg
* @throws Exception
*/
public static void androidPush(String regId, String title, String msg)
throws Exception {
try {
StringBuffer postDataBuilder = new StringBuffer();
postDataBuilder.append("registration_id=" + regId); // 등록ID
postDataBuilder.append("&collapse_key=1");
postDataBuilder.append("&delay_while_idle=1");
postDataBuilder.append("&data.title="+ URLEncoder.encode(title, "UTF-8")); // 제목
postDataBuilder.append("&data.msg="+ URLEncoder.encode(msg, "UTF-8")); // 내용

byte[] postData = postDataBuilder.toString().getBytes();

URL url = new URL(HOST);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length",Integer.toString(postData.length));
conn.setRequestProperty("Authorization", "GoogleLogin auth=" + AUTH);
OutputStream out = conn.getOutputStream();
out.write(postData);
out.close();
conn.getInputStream();
} catch (Exception e) {
e.printStackTrace();
}
}

}

저작자 표시비영리변경 금지