1

我可以成功运行gcm的客户端和服务器。但是当我从服务器端发送消息时,我可以从 gcm 获得一个 messageId,它是这样的: 0:1408673696996426%921c249a002efde3

但是,我无法从客户端(android 端)获取此 messageId。通过监听 onMessage 事件,我可以从意图中检索消息数据,我的 onMessage 代码是这样的:

protected void onMessage(Context context, Intent intent) {
    Log.i(TAG, "Received message");
    //JSONObject jsonObj = null;

    String datastr = intent.getExtras().getString("message");
    String message = "";
    if(datastr!=null)
        message = datastr;
    else
        message = getString(R.string.gcm_message);
    displayMessage(context, message);
    // notifies user
    generateNotification(context, message);
}

但是,我无法从意图中获取 messageId。我搜索了官方教程和其他论坛,但没有得到答案。因此,我无法验证客户端是否已收到此消息。谢谢您的帮助。

4

1 回答 1

2

此消息 ID 不会传递给客户端。如果您希望能够确认消息传递,您可以将您自己的 ID 分配给 GCM 消息,并在有效负载中传递它。然后客户端可以将该 ID 发送回服务器以确认交付。

于 2014-08-22T02:49:32.453 回答