Probleme beim hinzufügen von WLANs

M

määx_re_22

Neues Mitglied
0
Hey zusammen,
habe ein kleines App, dass alle WLANs scannt und diese dann in die Liste Konfigurierter Netzwerke aufnehmen soll. Leider klappt das nicht so ganz:
Code:
WifiManager wifi;
[...]
wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
[...]
wifi.startScan();
        try{
            WifiConfiguration wifi_config = new WifiConfiguration();
            List<ScanResult> available_networks = wifi.getScanResults();
            for(ScanResult network : available_networks) {
                text_networks.append("\n" + network.SSID);
                wifi_config = new WifiConfiguration();
                wifi_config.SSID = network.SSID;
                wifi_config.SSID = network.SSID;
                wifi_config.BSSID = network.BSSID;
                wifi_config.hiddenSSID = false;
                wifi_config.priority = 1000;
                wifi_config.status = 1; //DISABLED
                wifi_config.allowedKeyManagement.set(KeyMgmt.NONE);
                internal_net_id = wifi.addNetwork( wifi_config );
                text_networks.append(" ID: " + internal_net_id);
            }
        }catch (Exception e){
            System.out.println("ERROR");
        }

Es werden alle Netzwerke aufgelistet, jedoch liefert addNetwork immer -1 zurück! Wenn ich alle Konfigurations-Einstellung auskommentiere liefert addNetwork auch eine ID! Aber das ist ja nicht Sinn der Sache ;)
Also jemand eine Idee woran das liegen könnte?
Bin für jede Hilfe dankbar
Määx
 
Da du "wifi_config" außerhalb der Schleife deklarierst, überschreibst du das Objekt mit jedem Schleifendurchgang. Dadurch kann das "addNetwork" nicht funktionieren.

Versuche doch mal folgendes:
Code:
for(ScanResult network : availableNetworks) {
  WifiConfiguration wifiConfig = new WifiConfiguration();
  wifiConfig.SSID = network.SSID;
  ..
  int netId = wifi.addNetwork(wifiConfig);
  textNetworks.append(" ID: ");
  textNetworks.append(netId);
}
Achja, es ist ziemlich zweckfrei einen StringBuilder mit "append("ID = " + String)" zu füttern, da du damit zwangsläufig noch einen StringBuilder erzeugst, denn Java verwendet nämlich für das zusammenführen von Strings immer einen StringBuilder.

Gruß
Chris
 
danke, aber das hat leider nicht geholfen!
Hast du vll noch eine Idee? bin echt verzweifelt...
 
So, jetzt habe ich mich mal in WiFi eingelesen.
Dein Problem besteht darin, dass "wifi.addNetwork( wifi_config );" als ID -1 zurückliefert. Dies lässt darauf schließen, dass die Angaben, die du in "wifi_config" gemacht hast, falsch sind.
Mein Vorschlag: die Parameter einzeln wegzulassen bzw. abzuändern bis du den Wert gefunden hast, der den Fehler verursacht.

Gruß
Chris
 
Hey,
danke für den Tipp! Also es liegt wohl an:
Code:
wifi_config.SSID = network.SSID;

Mit:
Code:
wifi_config.SSID = "ab";
funktioniert das ganze - ersetzte ich "ab" jedoch durch "abc" kommt wieder -1 zurück!

Irgendwie scheint es so, alsob ich der SSID nur zwei Zeichen übergeben kann!
Mache ich irgendwas falsch?
Danke
Määx
 

Ähnliche Themen

S
  • Sempervivum
Antworten
2
Aufrufe
607
Sempervivum
S
S
Antworten
4
Aufrufe
995
Sempervivum
S
R
Antworten
3
Aufrufe
1.621
Ritartet
R
Zurück
Oben Unten