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

GCM regId 관련 문제점

0 추천

이클립스를 이용해 앱을 폰에 설치할때는 regId가 제대로 들어옵니다.

그런데 프로젝트를 export한 apk파일로 설치된 앱에서는 

앱이 처음 설치되고 바로 들어가면 null값을 받아오고

그 다음부터 앱이 실행되면 regid값이 제대로 들어옵니다.

이건 무슨 이유일까요?

 

GCMRegistrar.checkDevice(context);
GCMRegistrar.checkManifest(context);
regId = GCMRegistrar.getRegistrationId(context);
if (regId.equals("")) { // gcm 에 regId 등록되어있는지 확인 하고 가져오기
GCMRegistrar.register(context, SENDER_ID);
regId = GCMRegistrar.getRegistrationId(context);
 
} else {
Log.i("Main", "Already registered - " + regId);
}
 
코드는 이렇게 쓰고 있습니다.

 

lotto (1,070 포인트) 님이 2015년 4월 16일 질문

1개의 답변

+1 추천
 
채택된 답변
GCMRegistrar.register(context, SENDER_ID);
regId = GCMRegistrar.getRegistrationId(context);
이렇게 하면 당연히 null 나올수 밖에요
 
register 요청 하면 응답이 비동기로 오기 때문에 그렇습니다.
 
GcmRegistrar.register(context, SENDER_ID)를 하면
 
GCMIntentService의 아래 메소드로 regId 응답이 옵니다.
@Override
protected void onRegistered(Context ctx, String regId) {
   // TODO Auto-generated method stub
 
}
 

기타 GCM 관련 자세한 구현 방법은 아래 블로그에 잘 나와있으니 참고하시기 바랍니다.

http://leminity.tistory.com/27

Gradler (109,780 포인트) 님이 2015년 4월 16일 답변
lotto님이 2015년 4월 16일 채택됨
감사합니다.
제가 잘못 이해하고 있었네요
...