package com.example.mygcmtest_2;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import com.google.android.gcm.GCMBaseIntentService;
import com.google.android.gcm.GCMRegistrar;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.Toast;
public class GCMIntentService extends GCMBaseIntentService {
protected void onError(Context context, String error){
Log.d("@@@@", "onError : "+error);
}
protected void onRegistered(Context context, String regId){
Log.d("@@@@", "onRegister : "+regId);
}
protected void onUnregistered(Context context, String regId){
Log.d("@@@@", "onUnregistered : "+regId);
}
@Override
protected void onMessage(Context arg0, Intent arg1) {
StringBuffer bufferMessageAll = new StringBuffer();
Bundle bundle = arg1.getExtras();
Set<String> setKey = bundle.keySet();
Iterator<String> iterKey = setKey.iterator();
while (iterKey.hasNext()){
String key = iterKey.next();
String value = bundle.getString(key);
Log.d("GCMIntentService", "onMessage. key = " + key + ", value = " + value);
bufferMessageAll.append(value).append("\n");
}
String messageAll = bufferMessageAll.toString();
showMessage(arg0, messageAll);
}
public void showMessage(final Context context, final String message){
new Runnable() {
@Override
public void run() {
Map<String, Object> map= new Hashtable<String, Object>();
Message msg = new Message();
msg.what = 0;
map.put("message", message);
map.put("context", context);
msg.obj = map;
handler.sendMessage(msg);
}
}.run();
}
private static Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
Map<String, Object> map = (Hashtable<String, Object>)msg.obj;
String message = (String)map.get("message");
Context context = (Context)map.get("context");
Toast.makeText(context, message, Toast.LENGTH_LONG).show();
}
};
}
코드는 이와 같은데, 문제는 서버를 통해 수신된 메시지 내용에 항상 이상한 문구가 추가된다는 점입니다.
예를들어 상대편 어플리케이션에서 "Hello"라고 보낸다면,
"Hello collapse_key do_not_collapse from 12xxxx.."라는 문구가 뜹니다.
뒤의 문구를 제외하고 순수한 메시지만을 수신하고 싶은데, 어떻게 해야 하나요??