我正在寻找一种在Android上编程确定设备当前连接的WIFI网络是否通过WEP、WPA或WPA2进行“安全”加密的方法。我已经尝试了谷歌搜索,但是没有找到一种编程方法来确定这一点。我还查看了TelephonyManager (http://developer.android.com/reference/android/telephony/TelephonyManager.html),但它也没有提供这些信息。
谢谢, J
我正在寻找一种在Android上编程确定设备当前连接的WIFI网络是否通过WEP、WPA或WPA2进行“安全”加密的方法。我已经尝试了谷歌搜索,但是没有找到一种编程方法来确定这一点。我还查看了TelephonyManager (http://developer.android.com/reference/android/telephony/TelephonyManager.html),但它也没有提供这些信息。
谢谢, J
可以使用ScanResult对象实现。
类似以下这样:
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
}
}
}
}
参考文献:
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