我使用以下代码检索连接的wifi加密类型,
代码段:
List<WifiConfiguration> wifiConfigs = wifiMgr.getConfiguredNetworks();
if (wifiConfigs != null && wifiConfigs.size() > 0) {
for (WifiConfiguration config : wifiConfigs) {
if (config != null && ssid.equalsIgnoreCase(config.SSID)) {
if (config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
encryptionType.append("WPA_PSK");
}
if (config.allowedKeyManagement.get(KeyMgmt.WPA_EAP)) {
encryptionType.append(" WPA_EAP");
}
if (config.allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {
encryptionType.append(" IEEE8021X");
} else {
if (config.wepKeys[0] != null) {
return "WEP";
} else {
return "NONE";
}
}
}
}
}
}
问题:在Android设备中,当前连接的WiFi接入点将加密类型显示为“802.1x EAP(CCKM)”。但是上面的代码总是返回“NONE”作为结果。
如何通过android代码获取实际值(可能使用WifiConfiguration)。 提前谢谢。
答案 0 :(得分:0)
我能够通过以下代码获得wifi接入点支持的加密类型(目前由Android移动设备连接),
List<WifiConfiguration> wifiConfigs = wifiMgr.getConfiguredNetworks();
if (wifiConfigs != null && wifiConfigs.size() > 0) {
for (WifiConfiguration config : wifiConfigs) {
if (config != null && ssid.equalsIgnoreCase(config.SSID)) {
for (int k = 0; k < config.allowedKeyManagement.size(); k++) {
if (config.allowedKeyManagement.get(k)) {
encryptionType.append(" ");
if (k < KeyMgmt.strings.length) {
encryptionType.append(KeyMgmt.strings[k]);
}
}
}
}
}
}
希望这会对你有所帮助。