2015-01-19 17 views
6

tôi cần để có được loại bảo mật từ WifiConfiguration nhập cảnh. Có thể không?Cách nhận bảo mật WiFi (KHÔNG, WEP, WPA, WPA2) từ mục nhập Android WifiĐịnh cấu hình?

String getSecurityType(WifiConfiguration conf) { 
} 

giá trị trở "NONE", "WEP", "WPA", "WPA2"

Đối với những người nghĩ rằng đó là một câu hỏi trùng lặp: Tôi muốn nhận được thông tin từ WiFiConfiguration đối tượng và không phải từ ScanResult đối tượng. Nó không giống nhau!

+0

thể trùng lặp của [Android: chiết xuất khả năng wifi bằng bao gồm] (http://stackoverflow.com/ câu hỏi/23637433/android-extracting-wifi-khả năng-có-chứa) – ozbek

+0

@ozbek Không phải vậy. Tôi cần nhận thông tin từ mục WiFiConfiguration không phải từ ScanResult. –

Trả lời

7

tôi có thể làm điều đó, chỉ cần:

import android.net.wifi.WifiConfiguration; 
import android.net.wifi.WifiConfiguration.AuthAlgorithm; 
import android.net.wifi.WifiConfiguration.KeyMgmt; 

public static final int SECURITY_NONE = 0; 
public static final int SECURITY_WEP = 1; 
public static final int SECURITY_PSK = 2; 
public static final int SECURITY_EAP = 3; 

public static int getSecurity(WifiConfiguration config) { 
    if (config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) 
     return SECURITY_PSK; 

    if (config.allowedKeyManagement.get(KeyMgmt.WPA_EAP) || config.allowedKeyManagement.get(KeyMgmt.IEEE8021X)) 
     return SECURITY_EAP; 

    return (config.wepKeys[0] != null) ? SECURITY_WEP : SECURITY_NONE; 
} 

như vậy ...

public static String getSecurityType(WifiConfiguration config) { 
    switch (getSecurity(config)) { 
     case SECURITY_WEP: 
      return "WEP"; 
     case SECURITY_PSK: 
      if (wifiConfiguration.allowedProtocols.get(WifiConfiguration.Protocol.RSN)) 
       return "WPA2"; 
      else 
       return "WPA"; 
     default: 
      return "NONE"; 
    } 
} 
Các vấn đề liên quan