2

我正在运行 sdk (extras/google/gcm/samples/) 中提供的示例 gcm-demo-client 并不断收到 key1="From GCM: you got message!" 来自收到的 Intent,即使我发布了不同的值。

例如,当我发布以下正文时

{
    "data":{"key1":"value1","message":"this text will be seen in the notification bar!!"},
    "registration_ids":["$GCM_REGISTRATION_ID"]
}

我收到的响应总是相同的 message_id

{
    "multicast_id":4767008207494821680,
    "success":1,"failure":0,
    "canonical_ids":1,
    "results":[{"registration_id":"APA91bH7p....f1tT65n3A","message_id":"0:1343892969659984%921c249af9fd7ecd"}]
}

我在 API 中遗漏了什么?我怎样才能让我的信息独一无二?感谢您的帮助法布里斯

4

1 回答 1

3

这是因为在 GCMIntentService 中它每次发送相同的消息。您应该在 GCMIntentService 中更改以下方法。

@Override
protected void onMessage(Context context, Intent intent) {
    Log.i(TAG, "Received message");
    String message = getString(R.string.gcm_message);
    displayMessage(context, message);
    // notifies user
    generateNotification(context, message);
}

代替

String message = getString(R.string.gcm_message);

您应该从下面显示的意图中获取数据

String message = intent.getExtra("message");

有关更多信息,请阅读此处的处理接收数据部分。

于 2012-08-02T15:11:21.793 回答