마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

(초보) gcm 서버 코드에 대한 질문 입니다.

0 추천

소스는 이렇게 되있습니다.

그져 보내지나 테스트 하기 위한 코드입니다.

 

다만 실행했을경우 메시지가 보내져야 정상으로 알고있는데 어디가 잘못인지 아니면 클라이언트에서 메시지를 받아오는 곳이 잘못인지 잘몰르겠습니다.

아래는 코드는 서버쪽 코드 입니다.

 

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());
   }
  }

 

JackR (380 포인트) 님이 2014년 8월 11일 질문
JackR님이 2014년 8월 12일 수정
http://www.masterqna.com/android/1 꼭 좀 읽어보시길...

1개의 답변

0 추천
일단 https://gcmsender.herokuapp.com 에 가면 제가 서버쪽은 만들어 놨습니다.

거기서 테스트해보시면 둘 중에 어느게 잘못인지 알 수 있을겁니다.
쎄미 (162,410 포인트) 님이 2014년 8월 13일 답변
쎄미님이 2015년 1월 17일 수정
쎄미님이 올려주신 링크에 api key랑 RegId랑 다 넣고 해봣는데 알람이 오지 안는걸보니 클라이언트를 코딩을 잘못한 느낌이드네요...
...