2012-03-18 5 views
5

Korzystam z poniższego kodu, aby utworzyć nowy punkt dostępu Wi-Fi i połączyć się z nim.
Ten kod działa poprawnie i mogę połączyć się z punktem dostępu Wi-Fi, ale problem z którym się spotykam, to połączenie Wi-Fi, które tworzę, nie jest zapamiętywane przez ponowne uruchomienie urządzenia.Jak zapamiętać konfigurację Wi-Fi i podłączoną sieć w trakcie restartu?

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
WifiConfiguration wc = new WifiConfiguration(); 
wc.SSID = "\"SSIDName\""; 
wc.preSharedKey = "\"password\""; 
wc.hiddenSSID = true; 
wc.status = WifiConfiguration.Status.ENABLED;   
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); 
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); 
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); 
int res = wifi.addNetwork(wc); 
Log.d("WifiPreference", "add Network returned " + res); 
boolean b = wifi.enableNetwork(res, true);   
Log.d("WifiPreference", "enableNetwork returned " + b); 

co chcę zarchiwizować jest, kiedy z powodzeniem połączyć SSID chcę pamiętać, że sieć i na następnym uruchomieniu urządzenia z Androidem powinien automatycznie połączyć się z tym SSID, który został uprzednio podłączony.

Czy to jest jakieś API w WifiManager lub WifiConfiguration, aby to zrobić?

Dzięki.

+0

jest to 'WifiManager.saveConfiguration()', które zapisuje aktualnie utworzoną konfigurację Wi-Fi. – User7723337

Odpowiedz

2

Musimy zapisać utworzoną konfigurację WiFi z wezwaniem do WifiManager.saveConfiguration() który zapisuje aktualnie utworzonej konfiguracji wifi, także musimy ustawić najwyższy priorytet utworzonej konfiguracji wifi więc że przy następnym uruchomieniu androida Wi-Fi menedżer daje pierwszeństwo tej sieci.

+0

'WifiManager.saveConfiguration()' jest przestarzałe –

0

Napisz odbiornik dla każdego czasu rozruchu, ustaw nazwę użytkownika i hasło. Nie pisz w tym momencie żadnego interfejsu użytkownika.

0

Spróbuj kod WPA:

 WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
     WifiConfiguration wc = new WifiConfiguration(); 
     wc.SSID = "\""+SSIDname+"\""; //IMP! This should be in Quotes!! 
     wc.hiddenSSID = false; 
     wc.status = WifiConfiguration.Status.DISABLED;  
     wc.priority = 1; 
     wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); 
     wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA); 
     wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 
     wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 
     wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 
     wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); 
     wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); 
     wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); 
     wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); 
     wc.preSharedKey = "\"".concat(password).concat("\""); 
     int res = wifi.addNetwork(wc); 
Powiązane problemy