2015-01-19 5 views
6

मुझे WifiConfiguration प्रविष्टि से सुरक्षा प्रकार प्राप्त करने की आवश्यकता है। क्या यह संभव है?एंड्रॉइड वाईफाई कॉन्फ़िगरेशन एंट्री से वाईफाई सुरक्षा (कोई नहीं, WEP, WPA, WPA2) कैसे प्राप्त करें?

String getSecurityType(WifiConfiguration conf) { 
} 

लौटने मूल्यों "NONE", "WEP", "WPA", "WPA2"

जो लोग सोचते हैं कि यह एक नकली सवाल है के लिए: मैं ScanResult वस्तु से WiFiConfiguration वस्तु और नहीं से जानकारी प्राप्त करना चाहते हैं। यह वैसा नहीं है!

+0

के संभावित डुप्लिकेट [एंड्रॉयड: वाईफ़ाई क्षमताओं निकालने शामिल साथ] (http://stackoverflow.com/ प्रश्न/23637433/एंड्रॉइड-निकालने-वाईफाई-क्षमताओं के साथ-साथ) – ozbek

+0

@ozbek नहीं यह नहीं है। मुझे WiFiConfiguration आइटम से स्कैनरसल्ट से जानकारी प्राप्त करने की आवश्यकता है। –

उत्तर

7

मैं यह कर सकता, बस:

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

तो ...

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"; 
    } 
} 
संबंधित मुद्दे