无法使 Google 云消息传递工作
Unnable to make Google Cloud Messaging Work
我遵循了新教程 Implementing GCM Client on Android,但我无法使其正常工作。
我成功地从我的设备中获取了令牌,当我发送以下消息时
{
"to": "f19jCbaw-S4:APA91b....",
"notification": {
"body": "body",
"title": "title"
},
"data": {
"message": "test"
}
}
到https://gcm-http.googleapis.com/gcm/send,我得到的结果是:
{
"multicast_id": 844556567...,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [
{
"message_id": "0:1433092445706613%..."
}
]
}
但我的应用程序从未进入 MyGcmListenerService class 的 onMessageReceived。我唯一的线索是以下日志跟踪:
6399-6454/com.miapp.app W/GcmNotification﹕ Failed to show notification: Missing icon
我正在逐步复制 Google Cloud Messaging Quickstart 示例项目。显然我使用了我的 api 密钥和我的发件人 ID...但是 ID 不起作用,我的应用程序在我的 onMessageReceived 方法中从未停止。
还有其他人遇到这个问题吗?
事实上,没有通知的有效载荷应该到达 "onMessageReceived" 方法并且工作正常,但如果有效载荷中存在通知,则会显示相同的错误 "Failed to show notification: Missing icon"。
我试图在 AndroidManifest.xml 中设置图标(在两个 intent-filter 上,在接收器上),但没有任何效果。
如果您不需要通知,只需将它们从负载中删除即可。
如果您需要通知,则需要在通知中添加另一个必填字段:
如果您的图标在 mipmap 中,您可以添加:
"icon" : "ic_launcher"
如果您的图标在可绘制对象内,您应该:
"icon" : "@drawable/ic_myicon"
因此您的新请求将如下所示:
{
"to": "f19jCbaw-S4:APA91b....",
"notification": {
"body": "body",
"title": "title",
"icon" : "@drawable/ic_myicon"
},
"data": {
"message": "test"
}
}
我遵循了新教程 Implementing GCM Client on Android,但我无法使其正常工作。
我成功地从我的设备中获取了令牌,当我发送以下消息时
{
"to": "f19jCbaw-S4:APA91b....",
"notification": {
"body": "body",
"title": "title"
},
"data": {
"message": "test"
}
}
到https://gcm-http.googleapis.com/gcm/send,我得到的结果是:
{
"multicast_id": 844556567...,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [
{
"message_id": "0:1433092445706613%..."
}
]
}
但我的应用程序从未进入 MyGcmListenerService class 的 onMessageReceived。我唯一的线索是以下日志跟踪:
6399-6454/com.miapp.app W/GcmNotification﹕ Failed to show notification: Missing icon
我正在逐步复制 Google Cloud Messaging Quickstart 示例项目。显然我使用了我的 api 密钥和我的发件人 ID...但是 ID 不起作用,我的应用程序在我的 onMessageReceived 方法中从未停止。
还有其他人遇到这个问题吗?
事实上,没有通知的有效载荷应该到达 "onMessageReceived" 方法并且工作正常,但如果有效载荷中存在通知,则会显示相同的错误 "Failed to show notification: Missing icon"。
我试图在 AndroidManifest.xml 中设置图标(在两个 intent-filter 上,在接收器上),但没有任何效果。
如果您不需要通知,只需将它们从负载中删除即可。
如果您需要通知,则需要在通知中添加另一个必填字段:
如果您的图标在 mipmap 中,您可以添加:
"icon" : "ic_launcher"
如果您的图标在可绘制对象内,您应该:
"icon" : "@drawable/ic_myicon"
因此您的新请求将如下所示:
{
"to": "f19jCbaw-S4:APA91b....",
"notification": {
"body": "body",
"title": "title",
"icon" : "@drawable/ic_myicon"
},
"data": {
"message": "test"
}
}