android 获取wifi的加密类型,wifi加密类型
最近開發wifi方面的功能,需要根據wifi加密類型來展現UI。遇到了一個比較蛋疼的問題:如何判斷wifi加密類型
wifi的管理需要通過WifiManager來操作
WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
開啟和關閉wifi
mWifiManager.setWifiEnabled(enabled);
掃描wifi列表
List scanResults= mWifiManager.getScanResults();
前面這幾步非常簡單,現在問題來了,數據已經拿到,那么如何判斷吶?
wifi的加密類型是通過ScanResult 對象的capabilities字段來獲取的,先看下官方的介紹:
注釋里解釋這個字段
Describes the authentication, key management, and encryption schemes supported by the access point.
描述了認證、密鑰管理、接入點所支持的加密方案。
并沒有提供如何區分加密類型的標準,通過搜索,網上的判斷方法多數是這么寫的
if (capabilities.contains("WEP")) {
...
} else if (capabilities.contains("PSK")) {
...
} else if (capabilities.contains("EAP")) {
...
} else {
//不加密
}
由于自己的電腦開啟wifi熱點有些問題,只是拿了兩部手機和小米隨身wifi進行測試,獲取的capabilities字段的值如下:
//一些加密wifi獲取的值
[WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]
[WPA2-PSK-CCMP][WPS][ESS]
[WPA2-PSK-CCMP][ESS]
//Android手機(魅族和小米)共享的不加密wifi獲取的值
[WPS][ESS]
//小米隨身wifi(usb硬件)共享的不加密wifi獲取的值
[ESS]
用上面的判斷方法來匹配加密類型貌似沒有問題,個人感覺這不是一個很好的解決方案。不加密的情況,這里僅僅測試了兩部Android手機和小米隨身wifi,就出現了不同的值,會不會出現其它的值?這是個疑問。如果您有更好的方法,歡迎指正!
參考鏈接
總結
以上是生活随笔為你收集整理的android 获取wifi的加密类型,wifi加密类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中如何定义函数的传入参数是o
- 下一篇: 某计算机系统20位地址线 8位数据线,同