我正在使用“新”GCM,它是 Google Play 服务的一部分,它不使用 Android 和服务器的 jar。Android 使用 Google Play apk 注册、接收甚至发送消息。在服务器端,我们需要与 GCM 通信的只是向他们的服务器进行 POST(如果不使用 XMPP)。我已经准备好了:我的 Android 应用注册并等待来自 GCM 的消息。我的服务器可以与 GCM 通信,并且我可以将消息传递到我的 Android 应用程序。
问题:我正在使用一个带有 POJO 对象的通用 jar(Android 和服务器),我在 JSON 之间进行转换。由于从我的服务器到 GCM 的 POST 使用 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, “消息”:“测试消息”,“网址”:“测试网址”}}
我在 Android intent.getExtras().toString() 中得到了什么
捆绑[{message=test msg, collapse_key=do_not_collapse, targetVersion=-1, from=483833987130, type=10, url=test url}]
我会很感激你的帮助。谢谢!