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

gcm 등록 질문있습니다.

0 추천

안녕하세요. gcm 관련 개발을 하고 있는 초보 대학생 프로그래머입니다.

다름이 아니라, gcm등록을 위해 코드 작성을 햇는데요..

 

registerReceiver(mHandleMessageReceiver,new IntentFilter(DISPLAY_MESSAGE_ACTION));
        final String regId = GCMRegistrar.getRegistrationId(this); //GCM서버에 등록된 reg ID를 가져오는 코드
       
           
        if (regId.equals("")) {
         Log.v("regId==",regId);
            // Automatically registers application on startup.
            GCMRegistrar.register(this, SENDER_ID);
        } else {
            // Device is already registered on GCM, check server.
            if (GCMRegistrar.isRegisteredOnServer(this)) {
             Log.v("222222regId==",regId);
                // Skips registration.
                //message.append(getString(R.string.already_registered) + "\n");
            }
            else {
             Log.v("3333333regId==",regId);
            }

 그런데, 아래 그림을 보시면, is registered on server : false

라고 뜨더라고요.. 그런데 저 reg_id로 서버에서 값을 전송해보면 가지더라구요;; 신기하게;;

기존 소스에서 홈페이지에 등록하는 부분을 뺏는데요.. 그게 문제일까요?(기존코드는 구글에서 제공한 소스입니다)

등록이 되어있는것도 아니고 등록이 안되었는데 전송은 되서 좀 이상하게 생각되어 질문을 올립니다!!

 

로그캣

익명사용자 님이 2013년 6월 14일 질문

2개의 답변

0 추천
GCM 에 메세지 잘못나오는 버그가 있다고 하던데 저건지 아닌지 모르겠네유
건방진프로그래머 (26,630 포인트) 님이 2013년 6월 14일 답변
건방진프로그래머님이 2013년 6월 14일 수정
0 추천
호출하신 isRegisteredOnServer에서 PROPERTY_ON_SERVER key로 SharedPreferences에서 getBoolean 하게 되는데

이때 기본값이 false입니다.

호출하실때 해당 key로 boolean값이 세팅되지 않아서 무조건 false가 나온거 같고요.

setRegisteredOnServer() 에서 위 key로 boolean 값을 세팅해주는데 이 부분 확인 해보셨나요?

이 메소드는 Sets whether the device was successfully registered in the server side. 라고 주석에 설명이 되있네요.
-쫑- (1,790 포인트) 님이 2013년 6월 17일 답변
...