Bundle
[{
google.sent_time=1487229288769,
gcm.notification.created_at=2017-02-16 12:44:52,
gcm.notification.e=1,
gcm.notification.Content_available=1,
gcm.notification.badge=1,
gcm.notification.title=, from=388143837768,
google.message_id=0:1487229288775757%19aca14d19aca14d,
gcm.notification.body=hi,
gcm.notification.uid=160,
collapse_key=com.sid.Smessenger
}]
我从fcm获得上述响应,我想将其转换为json 请检查上面的android代码。
从remoteMessage获得响应。
我没有在getBody()中获取数据
只获得空值。
public void onMessageReceived(RemoteMessage remoteMessage)
{
Log.d(TAG, "FROM: " + remoteMessage.getFrom());
remoteMessage.getFrom();
if (remoteMessage.getData().size() > 0)
{
Log.d(TAG, "Message data: " + remoteMessage.getData());
}
if (remoteMessage.getNotification() != null)
{
Log.d(TAG, "Message body:" +
remoteMessage.getNotification().getBody());
String questionId =
remoteMessage.getData().get("gcm.notification.gid");
String userId =
remoteMessage.getData().get("gcm.notification.uid");
Log.e("Group ID", questionId);
Log.e("U ID", userId);
Bundle bundle = new Bundle();
for (Map.Entry<String, String> entry :
remoteMessage.getData().entrySet()) {
bundle.putString(entry.getKey(), entry.getValue());
Log.e(entry.getKey(), entry.getValue());
//run it/// and get notification///
}
// String created_at = remoteMessage.
sendNotification(remoteMessage.getNotification().getBody());
}
// String value = bundle.getString("request");
}
答案 0 :(得分:1)
从您的回复片段中,我相信您的谈论应该如何在Android上进行。
它是JSON,但包含在您收到的数据包中 FCM接收函数中的参数尝试从您的包中获取值,如 通常我们在android中做。
不要考虑“JSON”,而应该考虑“键/值对”。你的服务器 以键/值对发送数据。您的应用会收到该数据 你得到的意图中的额外内容中的键/值对。你知道你的钥匙 是,所以只需从绑定的额外内容中检索值 那些键(例如,getStringExtra(“message”),getStringExtra(“title”))
希望这能解决你的问题。