我正在寻找一种从网络获取安全类型的方法,这些网络是配置的,但目前不在范围内。也就是说,来自WifiManager#getConfiguredNetworks()
返回的一个WifiManager#getConfiguredNetworks()
,而不是WifiManager#getScanResults()
。当然,这只能说明在网络最后一个范围内使用的是什么安全类型。这对我来说已经足够了。
用于getConfiguredNetworks()
状态的docs:
只填写以下字段: networkId、SSID、BSSID、优先级、allowedProtocols、allowedKeyManagement、allowedAuthAlgorithms、allowedPairwiseCiphers、allowedGroupCiphers
因此,对this question和其他类似于它的被接受的答案将无法工作,因为它依赖于wepKeys
字段。(对于自己的SECURITY_EAP
结果,它也没有一个开关大小写。)
这是否可以使用getConfiguredNetworks()
提供的有限信息?
发布于 2015-06-16 11:22:41
这是我天真的解决方案。从我对wifi安全性知之甚少的情况来看,我有一种预感,这些条件是必要的,但不足以确定安全类型。也许知道得更多的人可以详细说明。
private static String getSecurity(final WifiConfiguration network) {
if(network.allowedGroupCiphers.get(GroupCipher.CCMP)) {
return "WPA2";
}
else if(network.allowedGroupCiphers.get(GroupCipher.TKIP)) {
return "WPA";
}
else if(network.allowedGroupCiphers.get(GroupCipher.WEP40)
|| network.allowedGroupCiphers.get(GroupCipher.WEP104)) {
return "WEP";
}
else return "NONE";
}
发布于 2016-11-12 18:23:49
只有在添加了配置列表后,配置才会出现在配置列表中。你是对的,其他方法在这种情况下是行不通的。我唯一能猜到的方法是,您在范围内添加了配置,但后来使用了遗忘函数。既然您已经超出了范围,您就不能使用ScanResult,但是您的配置中也没有确定安全性是什么的信息。
https://stackoverflow.com/questions/30853311
复制