Android 在应用程序中,如何在不失去连接的情况下在接入点之间切换?

Android 在应用程序中,如何在不失去连接的情况下在接入点之间切换?,android,wifimanager,Android,Wifimanager,尝试连接到相同的SSID,但不同的BSSID(相同的WiFi,不同的接入点)。现在,如果我断开并重新连接,为什么我仍然需要找到最佳信号?默认情况下,它将连接到最佳信号(最近)接入点。如何在不断开和重新连接的情况下连接到最佳信号 我正在使用wifimanager查找我的网络和访问点。我可以找到我的所有接入点及其BSSID和信号电平。现在,为了连接到最佳信号,我需要断开并重新连接,这将使我的应用程序暂时失去连接,直到重新连接 public void onReceive(Context context

尝试连接到相同的SSID,但不同的BSSID(相同的WiFi,不同的接入点)。现在,如果我断开并重新连接,为什么我仍然需要找到最佳信号?默认情况下,它将连接到最佳信号(最近)接入点。如何在不断开和重新连接的情况下连接到最佳信号

我正在使用wifimanager查找我的网络和访问点。我可以找到我的所有接入点及其BSSID和信号电平。现在,为了连接到最佳信号,我需要断开并重新连接,这将使我的应用程序暂时失去连接,直到重新连接

public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.equals(action)) {
            List<ScanResult> wifiList = wifiManager.getScanResults();
            ArrayList<String> deviceList = new ArrayList<>();
            for (ScanResult scan_wifi_results : wifiList) {
                if (scan_wifi_results.SSID.equals("Office")||scan_wifi_results.SSID.equals("Warehouse")) {
                    if (bestSignal == null || WifiManager.compareSignalLevel(bestSignal.level, scan_wifi_results.level) < 0) { bestSignal = scan_wifi_results; }
                    deviceList.add(scan_wifi_results.SSID + " - db: " + scan_wifi_results.level + " - Mac: " + scan_wifi_results.BSSID); }
            }
            ArrayAdapter arrayAdapter = new ArrayAdapter(context, R.layout.wifi_template, deviceList.toArray());
            wifiDeviceList.setAdapter(arrayAdapter);
        }
            WifiConfiguration config = new WifiConfiguration();
            config.SSID = bestSignal.SSID;
            config.BSSID = bestSignal.BSSID;
            netID = wifiManager.addNetwork(config);
        }
        wifiManager.disconnect();
        wifiManager.enableNetwork(netID,true);
        wifiManager.reconnect();
        Toast.makeText(context,"Connected to best Signal: " + bestSignal.BSSID,Toast.LENGTH_SHORT).show();
}
public void onReceive(上下文、意图){
String action=intent.getAction();
if(WifiManager.SCAN\u结果\u可用\u操作.equals(操作)){
List wifiList=wifiManager.getScanResults();
ArrayList deviceList=新的ArrayList();
用于(扫描结果扫描\无线\结果:wifiList){
如果(扫描wifi_results.SSID.equals(“办公室”)|扫描wifi_results.SSID.equals(“仓库”)){
如果(bestSignal==null | | WifiManager.compareSignalLevel(bestSignal.level,scan_wifi_results.level)<0){bestSignal=scan_wifi_results;}
添加(scan_wifi_results.SSID+”-db:“+scan_wifi_results.level+”-Mac:“+scan_wifi_results.BSSID);}
}
ArrayAdapter ArrayAdapter=新的ArrayAdapter(上下文,R.layout.wifi_模板,deviceList.toArray());
wifiDeviceList.setAdapter(arrayAdapter);
}
WifiConfiguration config=新的WifiConfiguration();
config.SSID=bestSignal.SSID;
config.BSSID=bestSignal.BSSID;
netID=wifiManager.addNetwork(配置);
}
wifiManager.disconnect();
wifiManager.enableNetwork(netID,true);
wifiManager.reconnect();
Toast.makeText(上下文,“连接到最佳信号:+bestSignal.BSSID,Toast.LENGTH_SHORT.show();
}
如果我添加wifiManager.enableNetwork(netID,true)而不断开和重新连接,它将不会更改访问点 是否可以在不失去wifi连接的情况下实现这一点