2012-10-23 5 views
1

Google 클라우드 메시징에 푸시 알림을 보내려고했습니다. 장치를 등록하고 서버에 등록 ID를 저장 한 다음 푸시 메시지를 다시 장치로 보낼 수 있습니다.Android, Google 클라우드 메시징 - 푸시는 전화를 받았지만 기기에 푸시 알림을 생성하지 않습니다.

나는이 모든 작업을 수행 할 수 있으며 catLog는 푸시 메시지가 장치에 있음을 나타냅니다. 그러나 장치에서 밀어 넣기 알림 메시지가 나타나지 않았습니다.

무엇이 원인 일 수 있습니까?

그냥 경우에, 여기에 내가 장치를 등록하는 방법이다 : 나는 GCMRegistrar.setRegisteredOnServer (getApplicationContext(), TRUE) 할 onPostExecute에

 GCMRegistrar.checkDevice(this); 
     GCMRegistrar.checkManifest(this); 

     final String regId = GCMRegistrar.getRegistrationId(this); 
     if (regId.equals("")) 
     { 
      // Automatically registers application on startup. 
      GCMRegistrar.register(getApplicationContext(), SENDER_ID); 
     } 
     else 
     {   
      // Device is already registered on GCM, check server. 
      if (GCMRegistrar.isRegisteredOnServer(getApplicationContext())) 
      { 
       // Not sure what to do here :) 
      } 
      else 
      { 
       if (user_id != null) 
       { 
        GCMRegistrar.register(this, SENDER_ID); // google register   
        setRegistrationId (user_id , regId); // saves id on server 
       } 
      } 
     } 

끝; 여기

내 GCMIntentService

@Override 
    protected void onMessage(Context ctxt, Intent message) { 
    Bundle extras=message.getExtras(); 

    for (String key : extras.keySet()) { 
     Log.d(getClass().getSimpleName(), 
      String.format("onMessage: %s=%s", key, 
          extras.getString(key))); 
    } 
    } 

내의 onMessage() 메소드는,이 어쩌면 문제가 무엇입니까? 그것이 실제로 어떻게되어야합니까?

감사합니다.

답변

2

무엇이 원인 일 수 있습니까? 앱에서 GCMIntentService 서브 클래스가없는

  1. :

는 여기에 몇 가지 가능성이 있습니다.

  • 당신은 그렇지만 매니페스트에 등록되지 않았습니다.

  • 당신은 할 수 있지만 onMessage()

  • 당신이 한 오버라이드 (override)하지 않았다, 그러나 당신의 onMessage() 제대로 이벤트를 로그인하거나 그렇지 않으면 이벤트가 발생했음을 알려주는되지 않습니다.

  • +0

    방금 ​​원래 질문에 onMessage()를 추가했습니다. 맞습니까? – Genadinik

    +0

    @Genadinik : 괜찮아 보입니다. – CommonsWare

    +0

    흠 ... 그 밖의 무엇이 문제 일지에 대한 다른 생각은 없습니까? 나는 하루 이상 이걸 붙어있다 :) – Genadinik

    관련 문제