我正在使用Google Play Services中的“新”GCM,它不使用Android和服务器的jar。 Android使用Google Play apk进行注册、接收甚至发送消息。在服务器端,我们只需要向他们的服务器发送POST请求即可与GCM通信(如果不使用XMPP)。我已经完成了所有设置:我的Android应用程序注册并等待来自GCM的消息。我的服务器可以与GCM通信,我能够将消息交付给我的Android应用程序。
问题是:我正在使用一个常见的jar文件(Android和服务器都使用)和POJO对象,我将其转换为JSON格式。由于从服务器到GCM的POST请求使用JSON,而在Android中接收到的消息也使用JSON(至少我认为是这样),所以我认为这会让我的生活更轻松。但是,在Android中从GCM接收消息时,我不知道如何获取消息的有效负载并将其转换为我的对象。我可以看到其中的信息,但它不是我的对象(其中还有一些信息被GCM推入其中)。
我的问题是:在Android端是否有一种方法可以获取有效负载信息,就像我发送到GCM服务器的那样?还是应该在Android中解析接收到的数据而不使用JSON?
我发送的消息(“data”是有效负载)
{"registration_ids":["APA91bFdV..."],"collapse_key":null,"delay_while_idle":false,"time_to_live":2419200,"data":{"type":10,"targetVersion":-1,"message":"test msg","url":"test url"}}
我在Android中得到的信息intent.getExtras().toString()
Bundle[{message=test msg, collapse_key=do_not_collapse, targetVersion=-1, from=483833987130, type=10, url=test url}]
我将不知道如何获取有效负载信息并转换为我的对象,感谢你的帮助。谢谢!
问题是:我正在使用一个常见的jar文件(Android和服务器都使用)和POJO对象,我将其转换为JSON格式。由于从服务器到GCM的POST请求使用JSON,而在Android中接收到的消息也使用JSON(至少我认为是这样),所以我认为这会让我的生活更轻松。但是,在Android中从GCM接收消息时,我不知道如何获取消息的有效负载并将其转换为我的对象。我可以看到其中的信息,但它不是我的对象(其中还有一些信息被GCM推入其中)。
我的问题是:在Android端是否有一种方法可以获取有效负载信息,就像我发送到GCM服务器的那样?还是应该在Android中解析接收到的数据而不使用JSON?
我发送的消息(“data”是有效负载)
{"registration_ids":["APA91bFdV..."],"collapse_key":null,"delay_while_idle":false,"time_to_live":2419200,"data":{"type":10,"targetVersion":-1,"message":"test msg","url":"test url"}}
我在Android中得到的信息intent.getExtras().toString()
Bundle[{message=test msg, collapse_key=do_not_collapse, targetVersion=-1, from=483833987130, type=10, url=test url}]
我将不知道如何获取有效负载信息并转换为我的对象,感谢你的帮助。谢谢!