我正在使用“新”GCM,它是 Google Play 服务的一部分,它不使用适用于 Android 和服务器的 jar。 Android 使用 Google Play apk 来注册、接收甚至发送消息。在服务器端,我们与 GCM 通信所需要做的就是向其服务器执行 POST(如果不使用 XMPP)。我已全部设置完毕:我的 Android 应用程序注册并等待来自 GCM 的消息。我的服务器可以与 GCM 通信,并且我可以将消息传递到我的 Android 应用程序。
问题:我正在使用一个公共 jar(Android 和服务器)以及与 JSON 相互转换的 POJO 对象。由于从我的服务器 POST 到 GCM 使用 JSON 并在我的 Android 使用中接收消息(至少我相信它是这样),我认为这会让我的生活更轻松。但是当在 Android 中接收来自 GCM 的消息时,我不知道如何获取消息的有效负载并转换为我的对象。我可以看到那里的信息,但它不是我的对象(GCM 推送了一些信息)。
我的问题是:有没有办法在 Android 端获取我发送到 GCM 服务器的有效负载信息?或者我应该在没有 JSON 的情况下解析 Android 中接收到的数据?
我发送的消息(“数据”是有效负载)
{“registration_ids”:[“APA91bFdV...”],“collapse_key”:null,“delay_while_idle”:false,“time_to_live”:2419200,“data”:{“type”:10,“targetVersion”:-1, "message":"测试消息","url":"测试网址"}}
我在 Android Intent.getExtras().toString() 中得到了什么
捆绑[{消息=测试消息,collapse_key=do_not_collapse,
targetVersion=-1,from=483833987130,type=10,url=测试网址}]
我很感激你的帮助。谢谢!
有没有办法在 Android 端获取我发送到 GCM 服务器的有效负载信息?
不要考虑“JSON”,而要考虑“键/值对”。您的服务器以键/值对的形式发送数据。您的应用程序以键/值对的形式接收数据Intent
。您知道您的密钥是什么,因此只需从与这些密钥相关的附加项中检索值(例如,getStringExtra("message")
, getStringExtra("url")
).
或者我应该在没有 JSON 的情况下解析 Android 中接收到的数据?
接收到的数据不是 JSON 格式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)