无法使Google Cloud Messaging工作

时间:2015-05-31 17:21:46

标签: google-cloud-messaging

我遵循了新教程Implementing GCM Client on Android,我无法让它发挥作用。

我成功地获得了我的设备的令牌,当我发送以下消息时

TimePicker

https://gcm-http.googleapis.com/gcm/send,我得到了结果:

INotifyPropertyChanged

但我的应用程序永远不会进入MyGcmListenerService类的onMessageReceived。我唯一的线索是以下日志跟踪:

{
  "to": "f19jCbaw-S4:APA91b....",
  "notification": {
    "body": "body",
    "title": "title"
  },
  "data": {
    "message": "test"
  }
}

我逐步复制了Google Cloud Messaging Quickstart示例项目。很明显我使用我的api密钥和我的发件人ID ...但是id不起作用,我的app永远不会停留在我的onMessageReceived方法中。

其他人有这个问题吗?

1 个答案:

答案 0 :(得分:5)

事实上,没有通知的有效负载应该到达" onMessageReceived"方法和工作正常,但如果通知存在于有效负载中,则会显示相同的错误"无法显示通知:缺少图标"。

我尝试在AndroidManifest.xml中设置图标(在接收器上的两个intent-filter上),但没有任何效果。

如果您不需要通知,只需将其从有效负载中删除即可。

如果您需要通知,则需要在通知中添加另一个必填字段:

如果你的图标在mipmap中,你可以添加:

"icon" : "ic_launcher"

如果你的图标在drawable中,你应该有:

"icon" : "@drawable/ic_myicon"

所以你的新请求看起来像是:

{
  "to": "f19jCbaw-S4:APA91b....",
  "notification": {
    "body": "body",
    "title": "title",
    "icon" : "@drawable/ic_myicon"
  },
  "data": {
    "message": "test"
  }
 }