我遵循了新教程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方法中。
其他人有这个问题吗?
答案 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"
}
}