Android 是否从配置的网络获取安全类型?
我正在寻找一种从已配置但当前不在范围内的网络中获取安全类型的方法。也就是说,从Android 是否从配置的网络获取安全类型?,android,wifi,android-wifi,wifimanager,Android,Wifi,Android Wifi,Wifimanager,我正在寻找一种从已配置但当前不在范围内的网络中获取安全类型的方法。也就是说,从WifiManager#getConfiguredNetworks()返回的WifiConfiguration,而不是WifiManager#getScanResults()。当然,这只能告诉什么样的安全类型在使用时,网络是最后一个在范围内。这对我来说已经足够好了 getConfiguredNetworks()的文档说明: 仅填写以下字段:networkId、SSID、BSSID、优先级、allowedProtocol
WifiManager#getConfiguredNetworks()
返回的WifiConfiguration
,而不是WifiManager#getScanResults()
。当然,这只能告诉什么样的安全类型在使用时,网络是最后一个在范围内。这对我来说已经足够好了
getConfiguredNetworks()的文档说明:
仅填写以下字段:networkId、SSID、BSSID、优先级、allowedProtocols、allowedKeyManagement、allowedAuthAlgorithms、allowedPairwiseCiphers、allowedGroupCiphers
因此,接受的答案和其他类似答案将不起作用,因为它取决于wepKeys
字段。(它自己的SECURITY\u EAP
result也没有开关盒。)
使用getConfiguredNetworks()
提供的有限信息是否可以实现这一点?这是我的天真解决方案。我对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";
}
只有在添加配置后,配置才会出现在配置列表中。你是对的,其他方法在这种情况下不起作用。我能判断出你在这里得到的唯一方法是,你在范围内添加了配置,但后来使用了忘记功能。现在您已超出范围,无法使用ScanResult,但您的配置中也没有确定安全性的信息 @KristyWelsh的可能副本不是副本。这个问题是关于WifiManager#getScanResults()
,而不是WifiManager#getConfiguredNetworks()
。你想检查密钥管理吗?@SahilBahl我不知道。因此,我提出了一个问题:你有什么问题