【问题标题】:Android - How to connect to the strongest Access Point if all have the same SSID?Android - 如果所有接入点都具有相同的 SSID,如何连接到最强的接入点?
【发布时间】:2011-06-10 15:38:24
【问题描述】:

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

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

【问题讨论】:

  • 参见 2017 年的 this question。您可以设置 conf.BSSID 和 conf.SSID。

标签: android-wifi


【解决方案1】:

一旦你知道最好的,你可以在相应的WifiConfiguration中更改priority

【讨论】:

    【解决方案2】:

    好吧,如果您仍然没有找到问题的答案,那么您可以执行以下操作 -

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

    a) 如果相同,则表示您已连接到信号最好的 SSID,一切正常。

    b) 如果不进行第二步。

    2) 使用wifi.disconnect();

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多