소스는 이렇게 되있습니다.
그져 보내지나 테스트 하기 위한 코드입니다.
다만 실행했을경우 메시지가 보내져야 정상으로 알고있는데 어디가 잘못인지 아니면 클라이언트에서 메시지를 받아오는 곳이 잘못인지 잘몰르겠습니다.
아래는 코드는 서버쪽 코드 입니다.
import java.io.IOException;
import java.util.*;
import com.google.android.gcm.server.MulticastResult;
import com.google.android.gcm.server.Message;
import com.google.android.gcm.server.Result;
import com.google.android.gcm.server.Sender;
public class JavaServer {
public void sendMessage() throws IOException
{
Sender sender = new Sender("gcm server api id");
String regid = "regid 클라이언트에서 받아온 id";
Message message = new Message.Builder().addData("msg", "push notify").build();
List<String> list = new ArrayList<String>();
list.add(regid);
MulticastResult multiResult = sender.send(message, list, 5);
if (multiResult != null) {
List<Result> resultList = multiResult.getResults();
for (Result result : resultList) {
System.out.println(result.getMessageId());
}
}
}
public static void main(String[] args) throws Exception {
JavaServer s = new JavaServer();
s.sendMessage();
}
}
아래쪽 코드는 메시지처리 하는곳 입니다.
if( !extras.isEmpty() )
{
if( GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR.equals(messageType))
{
sendNotification("Send error: " + extras.toString());
}
else if( GoogleCloudMessaging.MESSAGE_TYPE_DELETED.equals(messageType))
{
sendNotification("Deleted message on server: " + extras.toString());
}
else if( GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(messageType))
{
String msg = intent.getStringExtra("msg");
sendNotification("Received: " + msg);
Log.i("GcmIntentService.java | onHandleIntent", "Received: " + extras.toString());
}
}