Airplane Mode (Connection Status) direkt erkennen - geht das irgendwie?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Airplane Mode (Connection Status) direkt erkennen - geht das irgendwie?

    Hat jemand bitte einen Tipp, wie ich den Airplane mode (bzw. disconnected state) sofort erkennen kann (und nicht erst nach einigen Sekunden)?

    Folgendes Problem: User schaltet Airplane mode ein, geht sofort zurück in die App und die App glaubt immer noch, sie ist connected (Reachability etc). Ich habs auch mit reachability.connectionRequired versucht, hat aber auch nix gebracht.

    Die App merkt die fehlende Connection erst nach ein paar Sekunden (also wenn ich einige Sekunden warte nach Aktivierung von Airplane und dann zurück gehe in die App erkennt sie richtig, dass wir disconnected sind).


    Wie kann ich den Airplane mode direkt erkennen bzw. direkt erkennen, dass ich disconnected bin ohne einige Sekunden warten zu müssen?

    Ich brauche eine synchrone Variante (self isConnected) die mir einen BOOL zurückgibt ob ich connected bin. Asynchron über observer/listener müsste ich sonst einiges an Code umschreiben, was ich vermeiden möchte.

    Die einzige Lösung, die ich bisher gefunden habe, und mit der man direkt disconnected erkennt bei airplane ist, wenn man direkt versucht eine Webseite zu laden per NSUrlRequest. Aber die Lösung ist halt nicht besonders elegant...

    Wäre super, wenn jemand vielleicht einen Tipp hätte, wie ich direkt und synchron den Disconnected state (Airplane) erkennen kann.
  • Hallo,

    ohne die Anwendung zu kenne vermute ich, dass das keine gute Lösung ist.

    Wenn Deine Anwendung zwingend eine Verbindung benötigt, dann würde ich beim Wechsel zur Anwendung ein Wait-Lade-Was-Weiss-Ich-View zeigen.

    Du interagierst ja wahrscheinlich mit ein und dem gleichen Server, oder!?
    Dann ist es klüger die Erreichbarkeit von dem zu prüfen, statt nur ist der Anwender irgendwie online.

    Sende doch einfach einen Header-Request. Das geht dann ratzfatz.
    Diesen Header-Request kannst Du natürlich auch synchron senden und in eine Kategorie wrappen, so dass es Deiner ursprünglichen Anfrage entspricht.

    Aber das ist unschön bei einer schlechten Internetverbindung, da dann je nach Timeout Deine Anwendung abgestürzt scheint.
    Der Anwender wird Dich verfluchen :D

    Viele Grüße
  • @little_pixel: Danke für Deinen Tipp mit dem Header Request :)
    Ist halt wie Du sagst eine unschöne Variante und ungenau ... wenn der Server offline ist, sagt Dir dann die App Du wärst offline, obwohl das ja gar nicht stimmt...). Also man überprüft halt damit ob etwas erreichbar ist, kann aber nachher nicht sagen, ob man offline ist oder ob der Server off ist, wenn die Erreichbarkeit fehlschlug.

    Und was zeig ich dann dem User an? :)

    Ideal wäre eine verlässliche isConnected Funktion, die direkt in der Sekunde den disconnect bemerkt, wo der User Airplane Mode aktiviert hat, und nicht erst 5-10 Sekunden später den disconnect bemerkt.