WLAN-Verbindung

  • Hallo,
    ich bin Anfänger und habe meine erste App geschrieben.
    Mit dieser App kann ich das Rolltor und das Licht meines CarPorts bedienen.
    Das funktioniert mit UDP-Kommandos, die ich über das WLAN im Heimnetz versende.
    Die App funktioniert bis auf ein kleines Problem perfekt:


    Wenn ich von aussen ( nicht in Reichweite meines Heimrouters ) den Empfangsbereich meines Routers "betrete",
    braucht mein Handy relativ lange, um sich mit dem Router zu verbinden.
    Diese Zeit würde ich gerne verkürzen, mir fehlt aber die rettende Idee.


    Momentan mache ich folgendes:
    Wenn ein Button ( zum Beispiel Tor-Auf ) gedrückt wird, wird zuerst folgende Funktion ( oder heißt das Methode ?)
    aufgerufen:
    Diese Funktion soll:
    1. Das WLAN Interface des Handys einschalten, falls es ausgeschaltet ist. ( Es ist aber eingeschaltet )
    2. Wenn keine Verbindung zu einem Router besteht, eine Verbindung aufbauen.
    3. Prüfen, ob ich mit meinem eigenen Router verbunden bin
    Wenn das alles erledigt ist, wird das Kommando gesendet ( was dann sehr spät gemacht wird )


    Hier die Funktion:

    Jetzt zu meinen Fragen:
    1. Macht die Funktion so Sinn, oder geht das geschickter?
    2. Ich habe die Idee, diese Funktion nicht erst bei einem Button-Event aufzurufen,
    sondern schon dann, wenn der Power-Button des Handys gedrückt wird. Würde das was bringen, oder
    versucht das Handy sowieso schon eine Verbindung aufzubauen, wenn der Power-Button gedrückt wird, und es dauert eben einfach so lange?


    Vielen Dank im Voraus, und bitte nicht über meinen Code (Kot) lachen. Bin Anfänger.

  • hi verstehe nicht ganz dein Problem. Das Handy logt sich doch von selbst in den Home Wlan wenn du in Reichweite bist. Wenn du zu weit weg bist was willst du da beschleunigen.
    Dann ist es vielleicht sinnvoller einen zusätzlichen wlanrouter in die Nähe des rolltors zu bringen.

  • Das Problem ist, das sobald ich in Reichweite komme, der automatische Verbindungsaufbau zu lange dauert.
    Ich stehe eine Minute vor der Garage und warte, bis mein Handy die Verbindung aufgebaut hat.
    Erst dann kann ich etwas senden.
    Ich vermute, das das Handy zyklisch ( zum Beispiel jede Minute) prüft, ob Router in Reichweite sind.
    Ich möchte mein Handy dazu bringen, jetzt sofort die Verbindung herzustellen.

  • Wie du das Handy dazu bringst sich schneller mit dem WLAN zu verbinden kann hier dir nicht sagen. Versuche in den Handy Einstellungen was zu finden. Für manche händisch giebt es Codes wo du auf erweiterte Einstellungen kommst. Weiß ich jetzt nicht auswendig.
    Eentweder wie gesagt einen stärkeren Router damit die Reichweite größer wird und somit auch das Signal stärker wird dann loggt sich das Handy auch früher ein.
    Oder du erstellst sowas wie ei e VPN Verbindung zu deim Router und kannst somit vom modilen Internet auf deinen Router zugreifen. Mehr Tips kann ich dir leider nicht geben.
    PS. Schalte mal das WLAN aus und erst wenn du in Reichweite bist wieder ein vielleicht verbindet es sich dann schneller oder du bringst deinen Router dazu das er sein Hallo Telegramm öfters schickt geht natürlich zu Lasten der netzlast. Außerdem wie viele gespeicherte wlan hast du in deinem Handy. Das handy versucht immer fast alle durch wenn es kein Signal hat.

  • WLAN aus und einschalten ginge schon, dann verbindet es sich auch sofort. Das ist aber nicht praktikabel.
    Ich müsste erst das Display über den Power Button einschalten, dann in die WLAN-Einstellungen, WLAN aus, WLAN ein, dann meine App öffnen und dann den Button für das Tor drücken. Das dauert dann im Endeffekt genauso lange, als wenn ich gleich warten würde, nur das ich dann mehr zu klicken habe.
    Mir wäre eine Lösung per Software lieber, so was ähnliches versuche ich ja schon, indem ich die Reconnect-Funktion des Wifi-Managers aufrufe.
    Die Frage ist nur, ob die auch das macht, was ich will, nämlich nach Routern suchen und sich verbinden, und wenn ja, ob es Sinn machen würde, diese Funktion schon bei Aktivierung des Displays aufzurufen, damit das Handy schon mal nach Routern scannt, während ich die App starte.
    Ich bin nicht sicher, ob Reconnect die richtige Funktion ist, weil sie vermutlich die Verbindung erstmal trennen wird, wenn sie schon besteht.


    VPN würde gehen, das habe ich aber bisher vermieden, weil man dann auch aus der Ferne versehentlich das Tor öffnen kann und man sieht nicht, wenn es sich öffnet.

  • Bei Aktivieren des Displays dann würde das Handy es immer machen. Auch wenn du mit Sicherheit nicht in Reichweite bist weiß nicht ob das so schön ist.
    Dazu müsstest du aber einen System Service benutzen also so was wie den Logg Screen.

  • Hallo, bist du mit dem Thema schon weiter gekommen?
    Was mir auffält ist du prüft die SSID ob es deine Home SSID ist aber in dem fall das es sie nicht ist würde ich die Verbindung trennen.
    Auch könnte ein gennerelles Verbindungs trennen am Anfang hälfen ich würde auch die Mobiele Verbindung trennen damit sich das Handy über WLan verbinden muss.
    So wie ich es aus der Developer Seite lese wird bei Reconnect nur die vorhandene verbindung nochmal neu verbunden, und nicht unbedingt ein anderer Accesspoint gewält. https://developer.android.com/…net/wifi/WifiManager.html


    Wie ist dein Rolltor mit dem Lan verbunden über Kabel oder Wlan ?
    Bei Wlan hilft vieiecht "tdls" weiter. meine einen DirectConnect ohne Access Point .


    Versuche es mal mit:
    boolean removeNetwork (int netId)
    Remove the specified network from the list of configured networks. This may result in the asynchronous delivery of state change events. Applications are not allowed to remove networks created by other applications.
    int: the ID of the network as returned by addNetwork(WifiConfiguration) or getConfiguredNetworks().
    Dafür musst du dir ID deines Home Netzes z.B. in einer Perferences mekken die du mit getConfiguredNetworks() holen kanst venn du im Homnetz verbunden bist.

  • Das ist schon so gedacht.
    Wenn ich eine Router Verbindung habe, dann ist es entweder der Heimnetz-Router oder der Router eines Bekannten oder so, der aber weit weg von meinem Zuhause ist.
    Wenn ich also mit einem anderen Router verbunden bin, bin ich auf keinem Fall zuhause und dann werden die Buttons einfach ignoriert.
    Wenn ich mit keinem Router verbunden bin, bin ich auf dem Weg von oder nach hause. Dann werden die Buttons auch einfach ignoriert.
    Wenn ich mit meinem Router verbunden bin, bin ich zuhause und die Button-Befehle werden ausgeführt.


    Warum soll ich dann die Verbindung trennen, wenn ich bei einem Freund bin und in dessen Netz ?????
    Ich will ja gerade sein Netz verwenden, nur eben die Befehle zum öffnen des Carports nicht senden, und genau das mache ich.


    Mein eigentliches Problem ist, das ich nicht genau weiß, was die einzelnen Funktionen genau bewirken und wann welche Funktion schon vom Handy selbst ausgeführt wird oder nicht.
    Wenn zum Beispiel das Handy schon selbst beim Einschalten des Displays nach Netzwerken sucht, bringt es nichts, wenn ich das auch nochmal in meiner App mache.


    Ich habe mir gedacht, das Handy verbindet sich ja automatisch mit meinem Netzwerk, ohne das ich irgendwas auswählen oder anstossen muss, Es dauert eben nur relativ lange.
    Dann müsste es auch eine API Funktion geben, die einfach nach Netzwerken in der Nähe sucht und sich mit dem stärksten Router verbindet.
    Und genau nach so einer Funktion suche ich.
    Ich bin aber nicht sicher, ob es sinnvoll ist, diese Funktion aufzurufen ( wenn es sie gibt ), denn es könnte ja sein, das sie schon zu einem frühen Zeitpunkt ( z.B. Display einschalten ) "vom Display" aufgerufen wird und einfach nur so lange braucht.

  • Normalerweise macht das dein Handy ständig im Hindergrund und sucht den stärksten.
    Du sollst die verbindung nur beim start der app trennen damit dein Handy sich so vieleicht etwas schleller verbindet. Und wenn das Mobile Internet aus ist versucht es immer eine Wlan verbindung herzustellen wenn Wlan an ist.


    wie stark ist denn überhaupt der Empfang wenn du for dem Tor stehst? oder noch im Auto sitzt.
    Ich versuche dir nur zu hälfen und vielleicht ein paar wege zu geben die du tessten köntest um dein ziel zu erreichen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!