我可以成功运行gcm的客户端和服务器。但是当我从服务器端发送消息时,我可以从 gcm 得到一个 messageId,它是这样的:
0:1408673696996426%921c249a002efde3
但是,我无法从客户端(android 端)获取此 messageId。通过监听 onMessage 事件,我可以从 intent 中检索消息数据,我的 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);
}
但是,我无法从 Intent 中获取 messageId。我搜索了official tutorial和其他论坛,但我没有得到答案。因此我无法验证客户端是否收到此消息。感谢您的帮助。
最佳答案
此消息 ID 不会传递给客户端。如果您希望能够确认消息传递,您可以将自己的 ID 分配给 GCM 消息,并在有效负载中传递它。然后客户端可以将该 ID 发送回服务器以确认交付。
关于android - 如何从接收方的 gcm 获取 messageId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25438816/