2012-12-04 9 views

Antwort

7

Die Registrierungs-IDs sind nicht enthalten.

Es tut mir leid, keine unterstützende Dokumentation zu liefern. Die GCM-Dokumentation gibt dies nicht klar an. Ich habe es jedoch getestet, um dieses Verhalten zu überprüfen. Der einzige "Beweis", den ich liefern kann, ist, dass in einer Multicast-Nachricht bis zu 1000 Registrierungs-IDs enthalten sein können. 1000 Registrierungs-IDs können offensichtlich nicht in die 4096 Bytes der Nutzlast passen.

Von http://developer.android.com/google/gcm/gcm.html:

registration_ids

ein String-Array mit der Liste der Geräte (Anmeldung IDs) Empfangen der Nachricht. Es muss mindestens 1 und maximal 1000 Registrierungs-IDs enthalten. Um eine Multicast-Nachricht zu senden, müssen Sie JSON verwenden. Um eine einzelne Nachricht an ein einzelnes Gerät zu senden, können Sie ein JSON-Objekt mit nur einer Registrierungs-ID oder einen einfachen Text verwenden (siehe unten). Erforderlich.

+0

. Bin mir nicht sicher. google wird nicht die registration_id int die nutzlast out.no dokument refered.in gcm fall ich finde die nachricht mit nutzung wie counter: { "registration_id": "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx ...", "daten": { "Nick": "Mario", "Text": "Großartiges Spiel!", "Raum": "PortugalVSDenmark", }, } – user1556497

+0

In dem von Ihnen angegebenen Beispiel beträgt die Nutzdatenlänge 4 + 5 + 4 + 12 + 4 + 16 (die Länge der Feldnamen und Werte). Sie können es selbst überprüfen, indem Sie versuchen, sie durch ein einzelnes Schlüssel/Wert-Paar zu ersetzen, wobei die Länge des Schlüssels + die Länge des Werts = 4096 ist. Sie werden sehen, dass die Nachricht gesendet wird. Dann können Sie ein einzelnes Zeichen hinzufügen und sehen, dass die Nachricht zurückgewiesen wird. Der einzige Haftungsausschluss, den ich erwähnen muss, ist, dass ich es nur für das einfache Format getestet habe, nicht für JSON, aber ich erwarte, dass sie sich genauso verhalten. – Eran

0

Um die akzeptierte Antwort zu vervollständigen. Ich habe dies getestet und das Ergebnis ist wie folgt:

Die maximale Länge der Nutzlast beträgt 4096 Bytes. Wenn Sie JSON verwenden, und Ihre Nachricht ist wie folgt:

{ 
    "to" : "APA91bGbkLeRLD228BKYQy4syvAYd5ErYiHup5FzofY_8x5CNHmhMlB65CaCHj9ntm7zcMhzDEkd9vi6rxM89cRzPuDLPrlX8UgYExGQ3LmakGTKpkIS0CE9-9tinlIRLMiLoGKDn5jVvks0njvcGFPJSHBn23cd-A", 
    "data": {"a":"Some information. Only this part inside data counts as payload"} 
} 

Der einzige Teil der Nachricht, die als Nutzlast zählt, ist der Teil im Inneren „Daten“. Dies gilt auch, wenn Sie an mehrere Geräte senden.

{ 
    "registration_ids" : ["APA91bGbkLeRLD228BKYQy4syvAYd5ErYiHup5FzofY_8x5CNHmhMlB65CaCHj9ntm7zcMhzDEkd9vi6rxM89cRzPuDLPrlX8UgYExGQ3LmakGTKpkIS0CE9-9tinlIRLMiLoGKDn5jVvks0njvcGFPJSHBn23cd-A", 
         "APA91bGbkLeRLD228BKYQy4syvAYd5ErYiHup5FzofY_8x5CNHmhMlB65CaCHj9ntm7zcMhzDEkd9vi6rxM89cRzPuDLPrlX8UgYExGQ3LmakGTKpkIS0CE9-9tinlIRLMiLoGKDn5jVvks0njvcGFPJSHBn23cd-A"] 
    "data": {"a":"Some information. Only this part inside data counts as payload"} 
} 
Verwandte Themen