Bietet Android eine Benachrichtigung darüber, in der Nähe eines neuen Wifi-Netzwerks zu sein? Ob das Gerät für die Verbindung mit diesem WLAN-Netzwerk konfiguriert ist, hängt davon ab, ob das Gerät die Wifi-Konfiguration für dieses bestimmte Wifi-Netzwerk eingerichtet hat, aber ist es möglich, bei jedem neuen Wifi-Netzwerk eine Benachrichtigung zu erhalten?
Ich sah die WifiManager-Klasse, aber die Zustände innerhalb der Klasse scheinen nicht zu erreichen, was ich versuche zu tun. Irgendwelche Ideen?Android - Wird benachrichtigt, wenn ein neuer Zugangspunkt erkannt wird?
Antwort
Verwenden Sie eine BroadcastReceiver
registriert, um Intents mit Aktion zu erhalten: WifiManager.NETWORK_STATE_CHANGED_ACTION
.
In diesem BroadcastReceiver können Sie ein NetworkInfo Objekt aus der Absicht extrahieren:
NetworkInfo ni = (NetworkInfo) intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
Dann ni.getState()
verarbeiten Verbindungen/Abschaltungen von WiFi-Netzwerken zu überprüfen.
Ist das wonach Sie gesucht haben?
bearbeiten nach der Antwort des
Also, wenn Sie wissen möchten, welche Wi-Fi-Netzwerke verfügbar sind, verwenden WifiManager.getScanResults() Diese Sie die Liste der in der Nähe Access Points in Scanresult
Objekte gibt. Diese enthalten die SSID und BSSID der Access Points, die jeweils ihren Netzwerknamen und MAC-Adresse angeben.
Sie können diese Informationen asynchron erhalten, indem Sie eine BroadcastReceiver
registriert verwenden, um Intents mit Aktion WifiManager.SCAN_RESULTS_AVAILABLE_ACTION
zu empfangen. Dann werden Sie jedes Mal benachrichtigt, wenn das System einen WLAN-Scan durchführt, und Sie können überprüfen, ob eine neue SSID (d. H. Netzwerkname) seit dem letzten Scan aufgetreten ist.
Und schließlich, wenn Sie öfter als das System standardmäßig scannen möchten, können Sie WLAN-Scans selbst unter Verwendung WifiManager.startScan()
auslösen.
Danke für die Antwort, aber das gibt nicht den Hinweis auf neue WiFi-Netzwerk tut es? Ich denke, es gibt Änderungen in den Zuständen des verbundenen Netzwerks –
Danke! Ich brauchte die zweite Szenario-Lösung. Registrierung mit WifiManager.SCAN_RESULTS_AVAILABLE_ACTION. Vielen Dank, ich werde es überprüfen und hoffe, dass es so funktioniert :) –
Sie sollten einen Dienst verwenden, der das WLAN-Netzwerk für bestimmte Intervalle überprüft. – Sandy