GCM Push Benachrichtigung funktioniert nicht

Stelle deine Frage öffentlich an die Threema-Forum-Community - über 4.600 Mitglieder helfen dir weiter. > Frage stellen <
  • Hallo zusammen,
    Ich verwende Threema unter Android 4.4 mit Cyanogenmod auf einem S3.

    Mein Problem: die Push-Benachrichtungen funktionieren nicht weil wohl irgendetwas mit dem GCM Push-Token nicht stimmt..

    Die FAQ hab ich bereits gelesen und keiner der Schritte hat irgendetwas bewirkt.
    Ich habe keine Apps deaktiviert, die GAPPS installiert (sogar Hangouts zum Test), ich habe keine Hintergrunddaten beschränkt bei sowohl Threema als auch bei Google-Dineste-Framework, Benachrichtigungen sind ebenfalls aktiviert,...

    Fehlermeldung wenn ich versuche das GCM Push-Token zurückzusetzen:

    Zitat


    GCM Push-Token konnte nicht zurückgesetzt werden (Not allowed to start service Intent {act=com.google.android.c2dm.intent.REGISTER pkg=com.google.android.gms (has extras)} without permission com.google.android.c2dm.permission.RECEIVE). Bitte versuchen Sie es erneut

    was ist diese Berechtigung RECIEVE bzw. wieso habe ich die nicht?

    lg GeilerGauda


  • Ich hätte in erster Linie mal den Cyanogen PrivacyGuard in Verdacht.
    Hast du mit dem den Google Play Services und Threema eh keine Berechtigungen genommen?

    Ich habe manuell den beiden Apps keine Berechtigungen entzogen und es wird auch alles als erlaubt angezeigt...

    ich habe irgendetwas von einer gefälschten GCM ID oder so gelesen aber weiß nicht wo man das einstellen kann... könnte es das sein?


  • ich habe irgendetwas von einer gefälschten GCM ID oder so gelesen aber weiß nicht wo man das einstellen kann... könnte es das sein?


    Kann ich mir vorstellen, vielleicht stellt der PrivacyGuard wirklich Threema eine falsche GCM ID zur Verfügung, was irgendwie blöd wäre.
    Wenn nicht, warte ab bis Threema v2.0 für dich als Update kommt, das behebt das möglicherweise.

  • Tja, bei mir tritt das Problem nun leider auch auf.

    Habe ein Samsung S3 mit Cyanogenmod 14.1 (Android 7.1.1) und Threema 2.94.333 Google Play) drauf. Sobald die Verbindung zum Threema-Server nach 1 Minute getrennt wird und alles über GCM laufen soll, kommt nichts mehr an.
    Vgl.
    https://threema.ch/de/faq/push_andr


    Auf dem absendenden Device habe ich den geschlossenen Briefumschlag als Symbol. Auf dem empfangenden Device aber keine Nachricht, dass eine Nachricht für mich vorliegt. Erst, wenn ich dort Threema direkt öffne, wird die Nachricht angezeigt.

    Für andere Apps funktioniert die Benachrichtigung (glaube ich).

    Hat da schon jemand ne Lösung (außer: warten auf's nächste Update)?


  • Tja, bei mir tritt das Problem nun leider auch auf.


    Hallo Tuxnet,

    willkommen hier im Forum! :)
    Ich nehme an, dass das Problem mit dem Wechsel auf CM14 aufgetreten ist!? Hast du ein Backup mit "Titanium Backup" eingespielt?
    Als ich von Android 4.x zu CM13 gewechselt bin, hatte ich auch massive Probleme mit Threema. Alles Tipps und Anleitungen die es im Netz gibt, hatten nichts geholfen.
    Ich hatte dann mal von jemanden den Tipp bekommen, dass es Probleme geben kann, wenn man ein Backup mit Titanium Backup einspielt. Als ich dann alles nochmal neu installiert hatte, ohne Titanium Backup, war das Problem behoben.

    Schöne Grüße
    Mogli


  • Geh mal in die Threema Einstellungen/ Fehlerbehebungen und resete deine Push Tocken. Du kannst auch mal den Push-Fixer installieren.
    Das hilft meistens, wenn du es nicht schon getan hast.


    Hallo Nedal,

    Hammer!!!
    Du hast ins Schwarze getroffen!

    Ja, ich habe vor dem Wechsel auf CM14.1 natürlich von allem ne Sicherung mit Titanium gemacht und diese Sicherungen dann wieder eingespielt.

    Der Tipp von Nedal hat mein Problem behoben. Auch nach dem Neustart des S3 kommen jetzt die Push-Mitteilungen direkt wieder an und es bimmelt fleißig und unverzüglich. Alles top.

    You made my day!

    Vielen Dank für die schnelle Hilfe und das herzliche Willkommen im Forum!!!

  • Hm, habe bis heute das Problem, dass ich keine Info bekomme, wenn eine neue Nachricht da ist.

    Alle Anweisungen vom Threema-Support befolgt, aber leider keinen Erfolg gehabt.

    Das Problem entstand, als ich von 2.7 auf 2.8er Version wechselte. Gibt es evtl. irgendwo noch eine 2.7er APK, damit ich diese noch mal aufspielen kann?

  • Hallo,
    jetzt wollte ich mich auch mal zu diesem Thema äußern und auch gleich diesen Thread nachnutzen, auch wenn er schon alt ist.
    Ich konnte nämlich NOCH NIE Push-Nachrichten empfangen, sondern nutze von Anfang an nur das Polling.

    Meine konkrete Frage:
    Was sind eigentlich die kompletten Voraussetzungen für die Nutzung von Push-Benachrichtigungen per GCM???

    Nur für die energiesparende / ereignisgesteuerte Nutzung der Push-Benachrichtigungen laufen bei mir überhaupt noch die "Google Play-Dienste". Ich habe sie auch immer wieder manuell aktualisiert.
    Alle anderen Google-Apps sind abgeschaltet. Ich besitze keinen Google-Account, nutze also auch keinen Play-Store, sondern installiere mir alles selbst.

    Ist ein Google-Account etwa Voraussetzung für die Nutzung von GCM?
    Wenn ich für andere Leute UNgerootete Geräte einrichten, d. h., erst einmal grob säubern und konfigurieren soll, dann können diejenigen auch keine Push-Benachrichtigungen empfangen. Auf Geräten mit vollem Spyware-Einsatz funktioniert es dagegen wohl!?
    Das fände ich zumindest SEHR fragwürdig, wenn ich (und andere) durch Threema wieder zurück in die Hände von Google getrieben werden sollten.

    Ich habe immer wieder versucht, vom Polling zu den Push-Benachrichtigungen zu wechseln.
    Normalerweise, bis zur Version 3.55, kam dann nach einer Weile ein Timeout und mir wurde gemeldet, dass das GCM Push-Token nicht aktualisiert werden konnte.
    Und nun, in Version 3.6, hat ich zum ersten Mal etwas geändert --- aber anscheinend auch nur, dass das Timeout rausgenommen wurde. D. h., dass ich jetzt beliebig lange auf das Zurücksetzen / Aktualisieren warten muss und Threema nicht mehr nutzen kann, bevor ich das Beenden der App nicht erzwungen habe!


  • Ist ein Google-Account etwa Voraussetzung für die Nutzung von GCM?

    Meines Wissens nicht. Es sollte genügen, dass die Google Play-Dienste installiert sind.

    Zitat


    Das fände ich zumindest SEHR fragwürdig, wenn ich (und andere) durch Threema wieder zurück in die Hände von Google getrieben werden sollten.

    Auf Android geht Push nicht ohne GCM. Punkt.

    Und es wird je länger je schlimmer. Inzwischen wirft Google Apps aus dem Play Store, welche direkt versuchen, über eine in Android vorhandene (!) API die App-Optimierungen, welche die Hintergrundausführung einschränken, zu deaktivieren. Dazu kommen noch all die China-Handys mit ihren destruktiven Akkuspar-Methoden. Schau dir nur mal die entsprechende FAQ auf der Threema-Homepage an. Sie wird immer umfangreicher.

    Die Nutzer erwarten von einem Instant Messenger sofortige Benachrichtigungen. GCM nicht zu benutzen wäre Selbstmord.

    Übrigens sendet Threema anders als gewisse Mitbewerber keine Daten über GCM. Es wird nur dazu verwendet, die App zu wecken.

    Zitat


    Und nun, in Version 3.6, hat ich zum ersten Mal etwas geändert --- aber anscheinend auch nur, dass das Timeout rausgenommen wurde. D. h., dass ich jetzt beliebig lange auf das Zurücksetzen / Aktualisieren warten muss und Threema nicht mehr nutzen kann, bevor ich das Beenden der App nicht erzwungen habe!

    Da würde ich mich mit einem Logfile an den Threema-Support wenden.

  • Danke für die Antwort.

    Aber, wie schon erwähnt, habe ich die Google Play-Dienste bereits in der neuesten Version installiert und aktiviert. Von den Berechtigungen her(nur bezüglich der Standard-Berechtigungen von Android 6.0.1; kein gerootetes Gerät), lasse ich sie gerade nur auf den Speicher zugreifen. Aber auch mit mehr Rechten (wobei ich nicht weiß, wozu sie Sensoren abfragen oder telefonieren können sollten) macht es keinen Unterschied.
    Ich kann die Push-Benachrichtigungen einfach nicht nutzen - auch auf Fremd-Smartphones nicht, die ich denjenigen ohne Google-Account eingerichtet habe.

    Die Logbuchdatei ist wirklich eine Idee. Auf die hätte ich auch schon vorher kommen können.
    Nur leider scheint es darin auch keine Fehlerhinweise zu geben. Der Inhalt ist folgender:


    Meiner Meinung nach gibt es hier nichts Kritisches zu sehen.
    Die Benutzeroberfläche wurde mehrmals ausgeblendet, als ich zum TotalCommander wechselte, um mir die angelegte Textdatei anzuschauen oder als der Bildschirm wegen Inaktivität abgeschaltet wurde. Man sieht die veranschlagten Timeouts von 60 s für eine Verbindung, die anscheinend nie zustande kam.
    Seltsamerweise wird der Vorgang (über den es keine Detailinformationen gibt) anscheinend mehrmals wiederholt.
    Nach ca. 10 min Wartezeit habe ich Threema dann zwangsweise beendet, weil die App sonst eben nicht mehr benutzbar wäre.
    Im Hintergrund wurde die App anscheinend sofort neugestartet. Wenn ich die Informationen richtig deute, erkennt man, dass Verbindungen über WLAN wie auch eine mobile Datenverbindung möglich sind. Schließlich erfolgt noch eine weitere Meldung, dass der "token refresh" fehlgeschlagen ist.

    Danach kam nichts mehr (nun schon für über eine halbe Stunde; da ich nicht mehr zur App gewechselt bin), weshalb ich annehme, dass der gesamte Vorgang abgeschlossen ist.
    Bis auf die Erkenntnis, dass der Vorgang sich sogar über den Neustart im Hintergrund hinweg hinzieht, hat mir dies also leider keinen Informationsgewinn gebracht.

  • Ich sehe da:


    Code
    Failed to complete token refresh. TIMEOUT

    Threema fragt offensichtlich bei den Google Play-Diensten nach einem Token. Dafür gibt es einen API-Call [1]. Irgendwann kommt dann ein Broadcast der Google Play-Dienste mit der Antwort "Timeout" zurück. Mehr ist da nicht dran und mehr Infos gibt's auch nicht.

    Das Problem ist also bei deiner Google Play-Installation zu suchen, nicht bei Threema. Da müsstest du dich bezüglich der Anforderungen direkt an Google wenden. Ich kann mit aber schon vorstellen, dass die entzogenen Berechtigungen einen Faktor darstellen könnten.

    [1] https://developers.google.com/instance-id/gu…enerate_a_token