0

Auf meinem Gerät mit Wifi-Netzwerk muss ich manchmal Internet-Verbindung aktualisieren, um Benachrichtigungen zu erhalten. Ich habe time_to_live = 5 gesetzt, um nur Instant-Benachrichtigungen zu erhalten. Es scheint, dass die Verbindung von Geräten mit gcm-Servern manchmal unterbrochen ist. Aber sobald ich WLAN-Internet aktualisieren, beginnen Benachrichtigungen richtig zu kommen. Das ist merkwürdig und praktisch unzuverlässig, da ich die Internetverbindung immer wieder aktualisieren muss, um Benachrichtigungen zu erhalten. Bitte helfen Sie in dieser Hinsicht! Danke im Voraus.Gcm Benachrichtigungen werden manchmal nicht auf dem Gerät mit WLAN-Netzwerk empfangen

+0

http://stackoverflow.com/questions/20513927/android-gcm-sent-successfully-but-not-received-on-some-devices Haben Sie das gelesen ?? –

+0

ja ich habe das gelesen. aber meine Situation ist völlig anders. Ich erhalte Benachrichtigungen auf allen Geräten, aber manchmal ist meine Verbindung mit gcm-Servern unterbrochen und ich muss die WLAN-Verbindung aktualisieren, um die Verbindung zu den gcm-Servern wiederherzustellen. –

+0

Haben Sie versucht, 'delay_while_idle = false' ??? –

Antwort

1

Ich habe über das gleiche Problem im Products Forum - Push notifications delayed, Hearbeat Interval not reliable gelesen. Nach dem alten Thread:

Android Push-Benachrichtigungen funktioniert über eine TCP-Verbindung auf dem Port 5228 zwischen dem Telefon und Google-Servern. Diese Verbindung wird hergestellt, wenn das Telefon mit einem Netzwerk verbunden wird. Alle Android-Push-Apps (Google Mail, WhatsApp, Hangouts usw.) verwenden Google Cloud Messaging (GCM) zum Senden und Empfangen von Push-Benachrichtigungen, die diese Verbindung vermuten lassen.

Per Definition hat eine TCP-Verbindung kein Timeout. Aber in der realen Welt haben WLAN-Router und Mobilfunkbetreiber einige Regeln, um die Anzahl der geöffneten TCP-Verbindungen zu begrenzen. Daher schließen/töten sie in der Regel, was sie für eine inaktive Verbindung halten, nachdem einige Male keine Pakete übertragen wurden. Zum Beispiel mein wifi Router kill Verbindungen nach 300 Sekunden (5 Minuten) der Inaktivität (keine Pakete auf der TCP-Verbindung).

Dann ist es in diesem Google-Thread gegeben wurde - Delay in getting GCM notification dass dieser spezielle Fall nicht um einen Fehler mit GCM ist, vielmehr ist es ein übereifriger Router.

es zu beheben:

Wir fanden wir die Verbindung lebendig mit einem Ping alle zwei Minuten vom GCM-Server halten konnte (was kostenlos ist). Es kann Auswirkungen auf die Akkulaufzeit haben, da ich vermute, dass der 15-Minuten-Timer, der den Cooee auslöst, derselbe ist, an dem Sie interne Alarme ausrichten sollen, um den Akkuverbrauch zu minimieren.

Zusammen mit meinen Recherchen fand ich auch diese SO Post - Do not receive GCM message while android device bein connected to WIFI, die ein Upgrade auf FCM als eine schlägt vor, die das Problem gelöst und vielleicht wird es auch für Sie arbeiten.

Verwandte Themen