2013-09-16 30 views

回答

1

使用WifiManagergetScanResults方法,並檢查ScanResult的性能字段的值。

WifiManager wm = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
    wm.startScan(); 

    //some time after... 

    List<ScanResult> results = wm.getScanResults(); 
    for(ScanResult result : results){ 
     //if this ap is locked, the capabilities string should contains.. 
     //the name of encryption mechanism. ex> [WPA2-EAP-CCMP] 
     Log.v("AP", "AP:" + result.capabilities); 
    } 

在我的情況下,結果日誌看起來是這樣的......

09-16 21:01:41.308 V/AP﹕ AP:[WPA-EAP-CCMP+TKIP][WPA2-EAP-CCMP+TKIP][ESS] 
09-16 21:01:41.308 V/AP﹕ AP:[WPA-PSK-CCMP][WPS][ESS] 
09-16 21:01:41.308 V/AP﹕ AP:[WPA2-EAP-CCMP][ESS] 
09-16 21:01:41.308 V/AP﹕ AP:[WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS] 
09-16 21:01:41.308 V/AP﹕ AP:[WPA2-EAP-CCMP][ESS] 
09-16 21:01:41.308 V/AP﹕ AP:[WPA2-EAP-CCMP][ESS] 

您可能需要以下權限才能掃描&讀取結果。

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>