2012-09-24 8 views
7

Sto sviluppando un'applicazione che esegue il backup della configurazione wifi da qualsiasi dispositivo Android (rooted) quindi voglio sapere come ottenere il percorso del file nel dispositivo Android così posso affrontarla.Come ottenere il percorso del file di configurazione wifi in Android

So che c'è un sacco di posizione a seconda del dispositivo ROM o

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

ma voglio farlo in modo dinamico.

+0

Cura di spiegare, stai salvando queste impostazioni in qualche posto o hai già salvato queste impostazioni in qualche luogo e vuoi solo trovarle? e per favore condividi ciò che hai fatto finora, questo ti aiuterà a rispondere. – Darpan

+0

Queste impostazioni sono già state salvate in qualche luogo e voglio solo trovarle. –

+0

Controlla questo per un paio di posizioni, resto devi scoprire con determinati casi. http://alt236.blogspot.com/2011/04/android-wifi-password-locations.html – Darpan

risposta

3

È necessario creare un'istanza WifiConfiguration come questo:

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

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

Poi, per la rete WEP è necessario fare questo:

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

Per la rete WPA è necessario aggiungere passphrase in questo modo:

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

Per rete aperta è necessario effettuare questa operazione:

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

Quindi, è necessario aggiungerlo alle impostazioni del gestore Android Wi-Fi:

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

E, infine, potrebbe essere necessario attivarla, in modo Android si connette ad esso:

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

In caso di WEP, se la password è in esadecimale, non è necessario circondarla di virgolette.

+0

Grazie ma non quello che sto cercando per, ho solo bisogno di un codice restituire dinamicamente a me dov'è il percorso del file di configurazione wifi –

Problemi correlati