2012-09-24 19 views
7

Zajmuję się tworzeniem aplikacji, która tworzy kopię zapasową konfiguracji wifi z dowolnego urządzenia z systemem Android (zrootowane) , więc chcę wiedzieć, jak uzyskać lokalizację pliku w urządzeniu z systemem Android, więc mogę sobie z tym poradzić.Jak uzyskać lokalizację pliku konfiguracji wifi w Androidzie

Wiem, że jest wiele lokalizacji w zależności od ROM lub urządzenia

jak /data/wifi/bcm_supp.conf lub /data/misc/wifi/wpa_supplicant.conf

ale chcę dostać się dynamicznie.

+0

Chcesz wyjaśnić, czy TY JEST zapisywania tych ustawień w niektórych miejscach, czy te ustawienia są już zapisane w niektórych lokalizacjach i chcesz je po prostu znaleźć? i podziel się tym, co zrobiłeś do tej pory, to pomoże ci odpowiedzieć. – Darpan

+0

Ustawienia te zostały już zapisane w niektórych lokalizacjach i chcę je po prostu znaleźć. –

+0

Sprawdź to w kilku lokalizacjach, reszta musisz dowiedzieć się w niektórych przypadkach. http://alt236.blogspot.com/2011/04/android-wifi-password-locations.html – Darpan

Odpowiedz

3

Musisz utworzyć instancję WifiConfiguration tak:

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

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

Następnie dla sieci WEP trzeba zrobić to:

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

Dla sieci WPA trzeba dodać hasło tak:

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

W przypadku sieci otwartej należy wykonać następujące czynności:

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

Następnie trzeba dodać go do ustawień menedżera Android Wi-fi:

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

I wreszcie, może trzeba go włączyć, więc Android łączy się z nim:

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

W przypadku WEP, jeśli twoje hasło jest w heksie, nie musisz otaczać go cudzysłowem.

+0

Dzięki, ale nie to, czego szukam dla, po prostu potrzebuję kod dynamicznie wracać do mnie, gdzie jest lokalizacja pliku konfiguracyjnego wifi –

Powiązane problemy