View Single Post
  #43  
Old 20.01.2013, 19:28
AndroidCaptchaApp
Guest
 
Posts: n/a
Default

Quote:
Bei Verbindung per WLAN löst die App für den Fall, dass man das Smartphone ausgeschaltet hat - gemeint ist der Standby-Modus - bzw. es nach einer gewissen Dauer von alleine in den Ruhezustand gegangen ist, nach Ablauf einer Zeitspanne von ca. 5 Minuten bei eintreffenden Captchas keine Benachrichtigung mehr aus - das Handy bleibt "aus"! Sobald ich es wieder einschalte, reagiert die App sofort mit der ausgewählten Benachrichtigungsmethode!
Dies sollte definitiv nicht sein. Bist du im selben WLAN wie der Captcha-Server? Wenn ja finde mal die IP Adresse heraus, die dein Handy im WLAN bekommt. Wenn dann meine App nicht reagiert, mach mal einen Ping auf diese IP. Wenn da auch nichts zurückkommt, dann läuft da etwas anderes schief. Es hilft in deinem Fall den Keep-Alive auf 4 Minuten, also 240 Sekunden zu stellen. Dazu gibt es aber leider aktuell einen Bug, siehe unten.

Quote:
Du schreibst ja in Deiner Anleitung: "Die App wurde so programmiert, dass sie auf Netzwerkstatus-Änderungen reagiert und dann die Verbindung automatisch neu aufbaut."

Das gilt aber scheinbar nur bei der Verbindung per WLAN, richtig?
So halb. Mit Netzwerkstatusänderungen meine ich Umschaltung zwischen WLAN und Mobilfunk oder Funkloch und Verlassen des Funklochs.
Das Smartphone kann nicht wissen, was "im großen Internet" passiert, also wenn die Gegenstelle eine neue IP bekommt. Beim WLAN bleibst du ja in deinem eigenen Netzwerk, deswegen bleibt die Verbindung zwischen Server und App bestehen.

Beim Mobilfunk hilft es das Keep-Alive Intervall zu erhöhen, ABER aktuell ist hier noch ein Bug drinnen bzw. tritt er auf meinen beiden Android-Testgeräten auf. Im Emulator läuft hingegen alles problemlos. Dieser Bug wird definitiv diese Woche durch einen Workaround behoben werden, bin nur noch am Überlegen wie dieser aussehen soll, da mehrere Lösungen denkbar sind.

Zu freedns.afraid.org möchte ich erwähnen, dass ich damit um Weihnachten experimentiert hatte. Zu diesem Zeitpunkt hatten die DNS-Server von freedns erhebliche Probleme, ich habe mehrere Versuche (teilweise mehr als 20) benötigt bis ich eine IP-Adresse bekommen habe. Falls du mal bei "Verbinde..." festhängst kann es an freedns liegen.

Quote:
Das Problem ist offensichtlich, dass Deine App nur beim erstmaligen Start die unter "Server" eingetragene dynamische FreedDNS-Domain abfragt.
Bei jedem Verbindungsaufbau wird die IP neu aufgelöst. Testen kannst du es, indem du in die Optionen gehst, einmal auf die Servereinstellungen tippst und dann ohne etwas zu ändern auf ok gehst. Dann baut er neu auf.

Quote:
Möglicherweise könntest Du ja als Lösungsansatz irgendwie ein - eventuell konfigurierbares - "Abfrage-Intervall" in Deine App integrieren?
Das macht Keep-Alive, das in einer neuen Version in dieser Woche noch richtig funktionsfähig sein wird.

An das Reconnect habe ich noch nie gedacht. Du schreibst, dass du bei Freedns per Skript die IP aktualisieren kannst. Ich nehme also an, dass es nicht dein Router macht, oder? Wie teilst du deinem Skript mit, dass neu verbunden wird/wurde? Ich frage deshalb, weil einen Reconnect kriegt man aktuell nur per Polling (Keep-Alive) mit. Denkbar wäre zusätzlich einzubauen, dass die App bevor die Verbindung getrennt wurde eine Nachricht bekommt in den nächsten Minuten die Verbindung neu aufzubauen. Dann kann man ein längeres Keep-Alive Intervall verwenden, denn je mehr Keep-Alives es gibt, desto höher der Akkuverbrauch.
Reply With Quote