首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用相同的SSID连接到最强接入点(信号最强的接入点)

使用相同的SSID连接到最强接入点(信号最强的接入点)
EN

Stack Overflow用户
提问于 2017-01-22 15:20:39
回答 1查看 636关注 0票数 2

我正在写一个程序,总是连接到最强的接入点。我是说信号最强的接入点。首先,我扫描所有可用的WiFi网络,然后限制它们只查看具有相同SSID的网络。

这样我就可以看到一个网络的所有AP。当我连接到那个网络时,它没有连接到最强的信号,但我希望它切换到最强的AP信号。通过

代码语言:javascript
复制
WifiManager.compareSignalLevel(bestSignal.level, connectedAP.level) <0  

我明白最好的信号。

代码语言:javascript
复制
if(WifiManager.compareSignalLevel(bestSignal.level, connectedAP.level) <0){

}

问题是我应该在这个if函数中做什么来连接到最强的AP (具有最强信号的AP)?

下面是我的代码,但没有办法将信号添加到其中:

代码语言:javascript
复制
    WifiConfiguration conf = new WifiConfiguration();
                 conf.SSID = "\"" + bestSignal.SSID + "\"";
            // I want to connect to the access point with signal bestSignal.level
            //how is it possible?



                conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
                wifiManager.addNetwork(conf);
                List<WifiConfiguration> list =wifiManager.getConfiguredNetworks();
                for( WifiConfiguration i : list ) {
                    if(i.SSID != null && 
                            i.SSID.equals("\"" + bestSignal.SSID + "\"")) {
                        wifiManager.disconnect();
                        wifiManager.enableNetwork(i.networkId, true);
                        wifiManager.reconnect();

                        break;
                    }
                }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-25 13:28:58

您还应该使用conf添加BSSID。即使不同的网络具有相同的BSSID,它们也会具有不同的BSSID。添加这一行就可以了。

代码语言:javascript
复制
WifiConfiguration conf = new WifiConfiguration();
             conf.SSID = "\"" + bestSignal.SSID + "\"";
             conf.BSSID= "\"" + bestSignal.BSSID+ "\"";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41788364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档