我知道如何连接到接入点,但我不知道如何连接到最强大的接入点, 如果所有SSID都相同。
我配置了类似的东西
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = convertToQuotedString("XYZ");
conf.status = WifiConfiguration.Status.ENABLED;
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
int netId = wifi.addNetwork(conf);
然后我说这样的话
List<WifiConfiguration> _configs = wifi.getConfiguredNetworks();
for (WifiConfiguration config : _configs) {
if ( config.SSID.equalsIgnoreCase(convertToQuotedString("XYZ"))){
boolean erg = wifi.enableNetwork(config.networkId, true);
Log.d(TAG, "enabling configured Network: " + Boolean.toString(erg) +
" SSID=[" + config.SSID + "] and ID=[" + config.networkId );
}
}
现在的问题是? 如何连接到具有相同SSID但信号更好的另一个接入点?
在WifiConfiguration中,没有可能告诉他这件事,是吗?
我使用方法
找到具有相同SSID的更好的接入点WifiManager.compareSignalLevel(bestSignal.level, connectedAcc.level) <0
如果在WifiConfiguration中它们之间没有区别,我怎么能连接到更好的一个,因为它们都有相同的SSID?
我希望你能帮助我, 非常感谢
答案 0 :(得分:0)
一旦您知道最佳的一个,就可以更改相应WifiConfiguration中的priority。
答案 1 :(得分:0)
如果您仍未找到问题的答案,那么您可以执行以下操作 -
1)检查最佳信号的BSSID和连接的设备是否相同。
a)如果它相同则意味着你连接到具有最佳信号的SSID并且一切都很好。
b)如果没有转到第二步。
2)使用wifi.disconnect();
这将确保您没有连接到任何接入点。
3)现在使用先前用于连接接入点的SSID,它将连接到信号最强的SSID。