2015-03-06 14 views
6

Szukam programistycznego sposobu na Androida, aby ustalić, czy WIFI, do którego aktualnie jest podłączone moje urządzenie, jest "zabezpieczony" za pomocą WEP, WPA lub WPA2 . Próbowałem wyszukiwać w Google i nie mogę znaleźć programowego sposobu, aby to ustalić. Przyjrzałem się również menedżerowi telefonii (http://developer.android.com/reference/android/telephony/TelephonyManager.html), w którym również brakuje tych informacji.Android - wykrywanie, czy wifi to WEP, WPA, WPA2 itd. Programowo

Dzięki J

+1

Czy próbowali pominie [WifiManager] (http://developer.android.com/reference/android/net/wifi/WifiManager.html) lub [ConnectivityManager] (http://developer.android .com/reference/android/net/ConnectivityManager.html)? – VERT9x

+1

Dla bieżącej sieci można znaleźć to, czego potrzebujesz w konfiguracji WifiManager WifiManager http://developer.android.com/reference/android/net/wifi/WifiConfiguration.html –

Odpowiedz

9

Istnieje sposób użycia obiektu ScanResult.

coś takiego:

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
List<ScanResult> networkList = wifi.getScanResults(); 

//get current connected SSID for comparison to ScanResult 
WifiInfo wi = wifi.getConnectionInfo(); 
String currentSSID = wi.getSSID(); 

if (networkList != null) { 
    for (ScanResult network : networkList) 
    { 
     //check if current connected SSID 
     if (currentSSID.equals(network.SSID)){ 
     //get capabilities of current connection 
     String Capabilities = network.capabilities;   
     Log.d (TAG, network.SSID + " capabilities : " + Capabilities); 

     if (Capabilities.contains("WPA2")) { 
      //do something 
     } 
     else if (Capabilities.contains("WPA")) { 
      //do something 
     } 
     else if (Capabilities.contains("WEP")) { 
      //do something 
     } 
     } 
    } 
} 

Referencje:

http://developer.android.com/reference/android/net/wifi/WifiManager.html#getScanResults()

http://developer.android.com/reference/android/net/wifi/ScanResult.html#capabilities

http://developer.android.com/reference/android/net/wifi/WifiInfo.html

android: Determine security type of wifi networks in range (without connecting to them)

ScanResult capabilities interpretation

+0

Nie trzeba sprawdzać zarówno WPA, jak i WPA2. Wystarczy sama kontrola WPA. – YoungCoconutCode

4

proszę zobaczyć AccessPointState klasę w tym project. Metoda, której szukasz, to getScanResultSecurity.

Mam nadzieję, że pomoże!

+1

Dzięki za pomoc. Jednak rozwiązanie Daniela było bliższe temu, czego szukałem. – Jon

+0

Nie ma problemu, mój przyjacielu! – Tachyon

+0

Awesome, szukałem tego kodu !!! – YoungCoconutCode

Powiązane problemy