2012-09-24 30 views
7

Tôi đang phát triển ứng dụng sao lưu cấu hình wifi từ bất kỳ thiết bị Android nào (bắt nguồn từ) vì vậy tôi muốn biết cách lấy vị trí tệp trong thiết bị Android để tôi có thể đối phó với nó.Cách tải vị trí tệp cấu hình wifi trong android

Tôi biết có rất nhiều vị trí tùy thuộc vào ROM hoặc thiết bị

như /data/wifi/bcm_supp.conf hoặc /data/misc/wifi/wpa_supplicant.conf

của bạn nhưng tôi muốn làm cho nó tự động.

+0

Hãy cẩn thận để giải thích, BẠN có lưu các cài đặt này đến một số địa điểm hoặc có các cài đặt này đã được lưu tại một số vị trí và bạn chỉ muốn tìm chúng? và xin vui lòng chia sẻ những gì bạn đã làm cho đến nay, điều này sẽ giúp trả lời. – Darpan

+0

Các cài đặt này đã được lưu tại một số vị trí và tôi chỉ muốn tìm chúng. –

+0

Kiểm tra điều này cho một vài địa điểm, nghỉ ngơi bạn phải tìm ra với một số trường hợp. http://alt236.blogspot.com/2011/04/android-wifi-password-locations.html – Darpan

Trả lời

3

Bạn cần tạo một đối tượng WifiConfiguration như thế này:

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

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

Sau đó, đối với mạng WEP bạn cần phải làm điều này:

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

Đối với mạng WPA bạn cần phải thêm cụm từ mật khẩu như thế này:

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

Đối với mạng mở bạn cần thực hiện việc này:

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

Sau đó, bạn cần phải thêm nó vào các thiết lập quản lý Wi-Fi Android:

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

Và cuối cùng, bạn có thể cần phải kích hoạt nó, vì vậy Android kết nối với nó:

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

Trong trường hợp WEP, nếu mật khẩu của bạn ở dạng hex, bạn không cần phải bao quanh nó bằng dấu ngoặc kép.

+0

Cảm ơn nhưng không phải là điều tôi đang tìm kiếm cho, tôi chỉ cần một mã động quay trở lại với tôi, nơi là vị trí tập tin cấu hình wifi –

Các vấn đề liên quan