2012-09-24 14 views
7

Estoy desarrollando una aplicación que haga una copia de seguridad de la configuración wifi desde cualquier dispositivo Android (rooteado) así que quiero saber cómo obtener la ubicación del archivo en el dispositivo Android. tratar con él.Cómo obtener la ubicación del archivo de configuración wifi en android

Yo sé que hay una gran cantidad de localización en función de su ROM o dispositivo

como /data/wifi/bcm_supp.conf o /data/misc/wifi/wpa_supplicant.conf

pero quiero conseguirlo de forma dinámica.

+0

Cuídate de explicar, ¿estás guardando estas configuraciones en algún lugar o estas configuraciones ya están guardadas en algún lugar y solo quieres encontrarlas? y por favor comparte lo que has hecho hasta ahora, esto ayudará a responder. – Darpan

+0

Estas configuraciones ya están guardadas en alguna ubicación y solo quiero encontrarlas. –

+0

Mire esto en algunos lugares, descanse, tiene que averiguarlo en ciertos casos. http://alt236.blogspot.com/2011/04/android-wifi-password-locations.html – Darpan

Respuesta

3

Es necesario crear una instancia WifiConfiguration así:

String networkSSID = "test"; 
String networkPass = "pass"; 

WifiConfiguration conf = new WifiConfiguration(); 
conf.SSID = "\"" + networkSSID + "\""; // 

Entonces, para la red WEP que tiene que hacer esto:

conf.wepKeys[0] = "\"" + networkPass + "\""; 
conf.wepTxKeyIndex = 0; 
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); 
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); 

Para la red WPA es necesario agregar la frase de contraseña de esta manera:

conf.preSharedKey = "\""+ networkPass +"\""; 

para red abierta que tiene que hacer esto:

conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); 

Entonces, es necesario añadirlo a la configuración del gestor de Android Wi-Fi:

WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 
wifiManager.add(conf); 

Y, por último, es posible que tenga que activarlo, por lo que Android se conecta a él:

List<WifiConfiguration> list = wifiManager.getConfiguredNetworks(); 
for (WifiConfiguration i : list) { 
    if (i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) { 
     wm.disconnect(); 
     wm.enableNetwork(i.networkId, true); 
     wm.reconnect(); 
     break; 
    } 
} 

En el caso de WEP, si su contraseña está en hexadecimal, no necesita rodearla con comillas.

+0

Gracias, pero no es lo que estoy buscando para, solo necesito un código que me devuelva dinámicamente dónde está la ubicación del archivo de configuración wifi –

Cuestiones relacionadas