Es sieht so aus, als ob eine Funktion, die in 8.0 Android O herauskommt, die Fähigkeit ist, WiFi automatisch zu aktivieren, wenn Sie sich in der Nähe eines gespeicherten Netzwerks befinden
Kann dies heute über Tasker erreicht werden?
Profil hinzufügen > Staat > Netz > Wifi in der Nähe (wie in diesen Fragen hier und hier )
SSID-Netzwerkname(n) eingeben / Netzwerke derzeit in Reichweite auswählen
Dies funktioniert einzeln, aber idealerweise könnten Sie aus der aktuellen Liste der gespeicherten/konfigurierten WLAN-Netzwerke ziehen. Android führt eine Liste zuvor gespeicherter Netzwerke:
F : Aber gibt es eine Möglichkeit, alle gespeicherten Netzwerknamen programmgesteuert abzurufen und als Variable festzulegen?
Hinweis : Es gibt einige Apps wie SmartWifiToggler , die auf GPS basieren, aber ich würde es nach Möglichkeit lieber über den Tasker erreichen.
Ich hatte das gleiche Problem und fand endlich einen Link zu diesem Projekt: https://www.reddit.com/r/tasker/comments/8p0ywt/project_share_switching_to_saved_wifi/ Das Projekt selbst macht ein bisschen mehr, zeigt aber einen Weg, um die gespeicherten WLANs zu erhalten mit standardmäßigen Tasker-Funktionen.
Zu Ihrer Frage: Aber gibt es überhaupt eine Möglichkeit, alle gespeicherten Netzwerknamen programmgesteuert abzurufen und als Variable festzulegen?
A: Ja, mit Tasker-Aktion vom Typ Code -> Java-Funktion (siehe auch Funktion $getConfiguredNetworks im verlinkten Projekt):
1.) Verwenden Sie die Code-Java-Funktion, um WifiManager von CONTEXT zu erhalten
2.) Verwenden Sie die Code-Java-Funktion, um konfigurierte Netzwerke von WifiManager abzurufen
3.-6.) Verwenden Sie Variable Search Replace, um SSIDs aus den konfigurierten Netzwerken mit regulären Ausdrücken zu erhalten
7.-8.) Setzen Sie die Variable, die vom Tasker Wifi Near State überprüft werden soll
9.) (Optional) Schritte 1-8 automatisch auslösen
Detaillierte Tasker-Aktionen:
1.) Java-Funktion:
a) Klasse oder Objekt=KONTEXT
b) Function=getSystemService{Object}(String) <wählen Sie mit dem Lupensymbol aus und scrollen Sie entweder nach unten oder verwenden Sie den Filter am unteren Rand des Bildschirms, achten Sie darauf, nicht die (Klassen-)Version auszuwählen>
c) Parameter=WLAN
d) Return{Object}=(WifiManager) wifiman
--> Das Ergebnis in der Tasker-Ansicht sollte so aussehen: (WifiManager) wifiman = CONTEXT.getSystemService(wifi)
2.) Java-Funktion:
a) Klasse oder Objekt=wifiman
b) Funktion=getConfiguredNetworks{Liste}()
c) Return{List}=%get_configured_networks
--> Das Ergebnis in der Tasker-Ansicht sollte so aussehen: %get_configured_networks = wifiman.getConfiguredNetworks()
SSIDs extrahieren, es gibt viele Möglichkeiten, ich habe es geschafft, die Liste zu durchlaufen
3.) Für: Variable %get_configured_networks Items %configured_network
Löschen Sie mithilfe eines regulären Ausdrucks alles aus der Variablen, das nicht die SSID ist
4.) Variablensuche Ersetzen:
a) Variable=%configured_network
b) Search=(?:.|\n)*SSID:\s*"(.*)"(?:.|\n)* <dieser reguläre Ausdruck erfasst den SSID-Namen in Erfassungsgruppe 1>
c) Ersetzen Sie Matches=true
d) Ersetzen durch =$1
SSID zum Array hinzufügen
5.) Array Push: Variable Array %ssids Position 1 Wert %configured_network
Schleife beenden
6.) Ende für
Verbinden Sie SSIDs mit / als Trennzeichen, um Taskers WLAN in die Nähe der Syntax SSID1/SSID2/.../SSIDn zu bringen
7.) Variable Join %ssids Joiner /
Legen Sie die globale Variable fest, die von Taskers Wifi Near State überprüft werden soll
8.) Variablensatzname %SavedWifis To %ssids
Sobald dies erledigt ist, kann ein Wifi Near %SavedWifis verwendet werden. Aber nachdem Sie ein neues WLAN hinzugefügt oder ein altes entfernt haben, müssen Sie den Wert erneut aktualisieren.
9.) Führen Sie Tasks aus, um %SavedWifis regelmäßig zu aktualisieren (z. B. basierend auf Zeitereignissen oder wann immer das WLAN verbunden ist). Wenn jemand eine Möglichkeit kennt, auf ein 'savedWifisUpdated'-Ereignis zu reagieren, lassen Sie es mich bitte wissen.
Schauen Sie sich die App namens IFTTT an, ich glaube, sie haben so etwas, wo Sie das einrichten können.
xavier_fakerat
mattm
KyleMit
KyleMit
KyleMit
xavier_fakerat
Kishan Patel
xavier_fakerat
xavier_fakerat