Android - 如果所有SSID都相同,如何连接到最强的接入点?

时间:2011-06-10 15:38:25

标签: android-wifi

我知道如何连接到接入点,但我不知道如何连接到最强大的接入点, 如果所有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?

我希望你能帮助我, 非常感谢

2 个答案:

答案 0 :(得分:0)

一旦您知道最佳的一个,就可以更改相应WifiConfiguration中的priority

答案 1 :(得分:0)

如果您仍未找到问题的答案,那么您可以执行以下操作 -

1)检查最佳信号的BSSID和连接的设备是否相同。

a)如果它相同则意味着你连接到具有最佳信号的SSID并且一切都很好。

b)如果没有转到第二步。

2)使用wifi.disconnect();

这将确保您没有连接到任何接入点。

3)现在使用先前用于连接接入点的SSID,它将连接到信号最强的SSID。