2012-10-23 35 views
1

我一直试图让Google Cloud Messaging创建推送通知。我能够注册设备,将注册ID存储在服务器上,然后将推送消息发送回设备。Android,Google云消息传递 - 推送至手机,但不会在设备上创建推送通知

我能够做到所有这些,catLog显示推送消息到达设备。但是在设备上,推送通知消息没有出现。

这可能是什么原因造成的?

以防万一,这里是我如何注册设备:上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 
       } 
      } 
     } 

我到底GCMRegistrar.setRegisteredOnServer(getApplicationContext(),TRUE);

这里是我的onMessage()在我的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))); 
    } 
    } 

方法这是问题的可能?它应该如何呢?

谢谢!

回答

2

这可能是什么原因造成的?

这里有一些可能性:

  1. 你不必在你的应用程序一个GCMIntentService子类。

  2. 你这样做,但它没有在清单中注册。

  3. 你这样做,但你没有覆盖onMessage()

  4. 你做,但你的onMessage()没有正确记录事件或其他方式让你知道所发生的事件。

+0

我刚刚将onMessage()添加到我原来的问题。是对的吗? – Genadinik

+0

@Genadinik:看起来很好。 – CommonsWare

+0

嗯..还有什么其他想法可能是这个问题?我坚持了这一整天,现在:) – Genadinik

相关问题