Tôi có thể liệt kê tất cả các mạng wifi trong phạm vi (sử dụng startScan + SCAN_RESULTS_AVAILABLE_ACTION + getScanResults) và nhận giá trị SSID và BSSID của chúng, nhưng tôi không thể tìm ra cách xác định loại bảo mật của mỗi mạng.android: Xác định loại bảo mật của mạng wifi trong phạm vi (không kết nối với chúng)
Trong đối tượng chính của tôi:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
registerReceiver(scanReceiver, intentFilter);
((WifiManager)getSystemService(Context.WIFI_SERVICE)).startScan();
Trong đối tượng scanReceiver tôi:
public void onReceive(Context c, Intent intent) {
if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(intent.getAction())){
mainObject.scanComplete();
}
}
Và một lần nữa trong đối tượng chính của tôi:
public void scanComplete()
{
List<ScanResult> networkList = ((WifiManager)getSystemService.(Context.WIFI_SERVICE)).getScanResults();
for (ScanResult network : networkList)
{
<do stuff>
}
}
Mã công trình trong chừng mực scanComplete mà cuối cùng được được gọi và tôi có thể liệt kê thành công tất cả các mạng wifi lân cận và nhận SSID và BSSID của họ, bu Tôi không thể tìm ra cách xác định loại bảo mật của họ.
Có cách nào để thực hiện việc này không?
Xin cảm ơn trước.
Cảm ơn! Câu trả lời chính xác. – twaddington
Lớp AccessPointState có một số mã tuyệt vời để diễn giải các khả năng trong ScanResult – Xample
Các tệp này có thể được nhập trực tiếp hay là một phần của một số gói khác? – Sohaib