2012-09-24 77 views
7

的無線配置文件位置我正在開發備份從任何Android設備(植根)的WiFi配置 ,所以我想知道如何在Android設備上獲取該文件的位置,這樣我可以將一個應用程序處理它。如何讓機器人

我知道有這取決於您的ROM或設備

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

了很多位置,但我想要動態地得到它。

+0

護理解釋,你保存這些設置一些地方或有這些設置已經保存在某個位置,你只是想找到他們呢?並請分享迄今爲止所做的工作,這將有助於回答。 – Darpan

+0

這些設置已保存在某個位置,我只是想找出它們。 –

+0

檢查了幾個地點,休息你必須找出某些案件。 http://alt236.blogspot.com/2011/04/android-wifi-password-locations.html – Darpan

回答

3

你需要創建一個WifiConfiguration情況是這樣的:

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

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

然後,針對WEP的網絡,你需要做到這一點:

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

對於WPA網絡,你需要添加密碼是這樣的:

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

對於開放式網絡,您需要執行此操作:

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

然後,你需要將它添加到Android的Wi-Fi管理器設置:

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

最後,你可能需要啓用它,因此Android連接到它:

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

在WEP的情況下,如果您的密碼是十六進制的,則不需要用引號括住它。

+0

感謝所有不同的位置,但不正是我正在尋找因爲,我只需要一個代碼動態地返回到我的wifi配置文件位置 –