Ich erstelle eine App, die alle verfügbaren WLANs in einem ListView auflisten kann. Wenn ich eines der WLANs in der Liste auswähle, das zuvor in List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
zwischengespeichert wurde, dann sollte es sich damit verbinden. Wenn die Liste WifiConfiguration
das ausgewählte WLAN nicht enthält, passiert nichts. Mein Problem ist, dass ich manchmal ein WLAN aus der Liste (die ich sicher in der WifiConfiguration
Liste ist) wählen, aber es verbindet sich nicht mit ihm. Stattdessen verbindet es sich mit dem zuvor verbundenen WLAN. Nach einigen Versuchen (immer wieder das selbe WLAN auswählend) verbindet es sich schließlich damit. Dies geschieht nicht immer, nur manchmal. Was kann das Problem sein? Hier ist mein Code-Schnipsel:Verbindung zu bestimmten Wi-Fi schlägt manchmal auf Android
// Go through all the cached wifis and check if the selected GoPro was cached before
for (WifiConfiguration config : configurations) {
// If it was cached connect to it and that's all
if (config.SSID != null && config.SSID.equals("\"" + mDrawerListView.getAdapter().getItem(position) + "\"")) {
// Log
Log.i("onReceive", "Connecting to: " + config.SSID);
mWifiManager.disconnect();
mWifiManager.enableNetwork(config.networkId, true);
mWifiManager.reconnect();
break;
}
}
Danke für die kurze Erklärung Daniel! Es macht wirklich Sinn, wie du es erklärt hast! Ich bin weg von meiner Maschine, auf der ich die Entwicklung mache, aber morgen wird es die erste Sache sein, die es ausprobiert! – Silex
Ich habe gerade Ihre Lösung getestet und es funktioniert perfekt, danke! – Silex
Es ist vielleicht wichtig zu wissen, dass die Dinge seit Android 6 geändert wurden: https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-network Wie ich es verstehe, es wird nur möglich sein, das Netzwerk zu deaktivieren, wenn dieses Netzwerk zuvor von der gleichen Anwendung unterstützt wurde – soey