2012-03-18 8 views
5

Estoy usando el siguiente código para crear un nuevo punto de acceso wifi y para conectarme a él.
Este código funciona bien y puedo conectarme al punto de acceso wifi, pero el problema al que me enfrento es que la conexión wifi que estoy creando no se recuerda a través de los reinicios del dispositivo.Cómo recordar la configuración wifi y la red conectada a través de los reinicios

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); 

Lo que quiero archivar es cuando me conecto con éxito para SSID quiero recordar que la red y el siguiente reinicio del dispositivo Android debería conectarse automáticamente a la SSID que estaba conectado previamente a.

¿Es eso cualquier API en WifiManager o WifiConfiguration para hacerlo?

Gracias.

+0

es 'WifiManager.saveConfiguration()' que guarda la configuración wifi creada actualmente. – User7723337

Respuesta

2

Tenemos que guardar la configuración Wi-Fi creada con llamada a WifiManager.saveConfiguration() lo que ahorra la configuración Wi-Fi creada actualmente, también tenemos que establecer la prioridad más alta a la configuración wifi creado hasta que en el próximo reinicio, el administrador de wi-fi de Android da preferencia a esta red.

+0

'WifiManager.saveConfiguration()' está en desuso –

0

Escriba un receptor de difusión para cada tiempo de arranque establezca el nombre de usuario y la contraseña. No escriba ninguna IU en ese momento.

0

Prueba este código para 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); 
Cuestiones relacionadas