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

안드로이드 GCM push 기능 질문입니다..

0 추천

안녕하세요 초보 안드로이드 개발자 입니다..

 
GCM을 사용한 단말과 서버 간 Push를 해보려고 하는데요
 
일단 제가 생각하는 푸쉬는 단말1에서 요청을 보내면 서버에서 요청을 받아 단말2에게 push를 넣어주면
알림이 뜨는 그런? ㄱ로직입니다.
 
여러곳에 있는 GCM 메뉴얼을 보고 따라해봤는데 도통 안되는 부분이 있어서 이렇게 질문드립니다..
 
Project ID 와 API KEY는 발급 받았습니다.
 
그리고 퍼미션과 리시버 서비스를 Manifast.xml 에 등록 했구요.
 
0. lib에 gcm.jar를 추가하였습니다. (Build Path도 추가)
 
1. Activity를 수정했습니다.
 
public void registerGcm() {
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
 
final String regId = GCMRegistrar.getRegistrationId(this);
 
if (regId.equals("")) {
GCMRegistrar.register(this, "859098759298");
} else {
Log.e("reg_id", regId);
}
}
 
메서드를 구현해 onClick에서 호출해 주었습니다.
 
 
2. GCMBaseIntentService 를 상속받은 GCMIntentService 클래스를 만들었습니다..
 
----------------단말은 여기서 끝
 
0. lib에 gcm-server.jar 와 json-simple-1.1.1.jar 를 추가하였습니다.
 
1. 서버 사이드 구현을 위해 자바EE 에서 다이나믹 웹 프로젝트를 생성했습니다..
 
2. 
public class GCMServerSide {
 public void sendMessage() throws IOException {
  Sender sender = new Sender("AIzaSyAR-UHcvL60ZFRy-dCf9XvXkxCunFYaGEY");
 
  String regId = "859098759298";
  
  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 {
  GCMServerSide s = new GCMServerSide();
  s.sendMessage();
 }
}
 
 
GCMServerSide 클래스를 하나 구현했습니다.
 
 
 
인터넷 보니 이정도의 설명이라 따라했는데 자바 프로젝트를 런온서버 해도 푸쉬가 안오고
 
어떻게 해야 휴대폰에 푸쉬가 오는지 알고 싶습니다..
 
알려주시면 감사하겠습니다..!
윤둥이 (4,560 포인트) 님이 2013년 7월 30일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...