Android,Google云消息传递 - 推送到手机,但不会在设备上创建推送通知

时间:2012-10-23 02:08:13

标签: android google-cloud-messaging

我一直在努力让Google Cloud Messaging创建推送通知。我可以注册设备,将注册ID存储在服务器上,然后将推送消息发送回设备。

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

这可能是什么原因?

以防万一,这是我注册设备的方式:

        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
                }
            }
        }

在onPostExecute上结束我做了GCMRegistrar.setRegisteredOnServer(getApplicationContext(),true);

这是我的GCMIntentService

中的onMessage()方法
  @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)));
    }
  }

问题可能是这个吗?它究竟应该如何?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

这可能是什么原因?

以下是一些可能性:

  1. 您的应用中没有GCMIntentService个子类。

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

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

  4. 您做到了,但您的onMessage()未正确记录事件或以其他方式告知您事件已发生。