(Neue) GCM-Nachricht empfangen, aber wie parsen?

Ich arbeite mit dem "neuen" GCM, einem Teil von Google Play Services, der keine Jars für Android und Server verwendet. Android verwendet Google Play apk, um sich zu registrieren, Nachrichten zu empfangen und sogar zu senden. Auf der Serverseite müssen wir lediglich einen POST an den Server des GCM durchführen (falls kein XMPP verwendet wird). Ich habe alles eingestellt: Meine Android-App registriert sich und wartet auf Nachrichten von GCM. Mein Server kann mit GCM kommunizieren und ich kann Nachrichten an meine Android-App übermitteln.

Das Problem: Ich verwende ein allgemeines Jar (Android und Server) mit POJO-Objekten, die ich in und von JSON transformiere. Da POST to GCM von meinem Server JSON verwendet und empfangene Nachrichten auch in meinem Android verwendet (zumindest glaube ich, dass dies der Fall ist), dachte ich, dass dies mein Leben einfacher machen würde. Aber wenn ich in Android eine Nachricht von GCM erhalte, weiß ich nicht, wie ich die Nutzdaten einer Nachricht abrufen und in meine Objekte umwandeln kann. Ich kann die Informationen dort sehen, aber es ist nicht mein Objekt (es gibt einige Informationen, in die GCM hineinschiebt).

Meine Frage ist: Gibt es eine Möglichkeit, Payload-Informationen unter Android so abzurufen, wie ich sie an den GCM-Server gesendet habe? Oder sollte ich empfangene Daten in Android ohne JSON analysieren?

Von mir gesendete Nachricht ("Daten" sind Nutzdaten)

{"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"}}

Was ich in Android erhalten habe intent.getExtras (). ToString ()

Bundle [{message = test msg, collapse_key = do_not_collapse, targetVersion = -1, from = 483833987130, type = 10, url = test url}]

Ich würde mich über Ihre Hilfe freuen. Vielen Dank!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage