gpt4 book ai didi

android - 最快的Wifi接入点交换

转载 作者:行者123 更新时间:2023-12-03 00:00:54 25 4
gpt4 key购买 nike

我正在开发一个音频通信应用程序,该应用程序要求Android手机从一个WiFi网络快速切换到另一个WiFi网络。目前,我的代码需要7到15秒钟的时间来切换环境中已经存在且已预先配置的WiFi网络。是否有可能加快切换时间。我是否必须缓冲15秒钟以上的音频,以便当用户从一个WiFi网络漫游到另一个WiFi网络时,他们不会听到任何暂停声?

 private void SwitchWifi(){

int myBestNetworkStrength = -60;
int myBestNetworkID = -1;
List<WifiConfiguration> currentConfig = myManager.getConfiguredNetworks();
if(myManager.startScan()){
if(myNetworks==null){
Initialize();
}
List<ScanResult> wifiList = myManager.getScanResults();
for(int i = 0; i < wifiList.size(); i++){
for(int j = 0; j < myNetworks.size(); j++){
if(wifiList.get(i).SSID.matches(myNetworks.get(j).mySSID)){
if(myBestNetworkStrength < wifiList.get(i).level){
for(int k = 0; k < currentConfig.size(); k++){
DebugScreen.AddLog("WIFIswitch", "k = " + currentConfig.get(k).SSID);
if(currentConfig.get(k).SSID.matches("\"" + wifiList.get(i).SSID+ "\"")){
myBestNetworkID = k;
myBestNetworkStrength = wifiList.get(i).level;
}
}
}
}
}
}
}//
DebugScreen.AddLog("WIFIswitch", "Best network strength is " + Integer.toString(myBestNetworkStrength) + " with network #" + Integer.toString(myBestNetworkID) );
if(myBestNetworkID != -1){
MailService.is_Waiting_For_New_Connection = true;
while(!MailService.has_Entered_Pause_Loop){
if(!isAlive())
return;
}
myManager.disconnect();
myManager.enableNetwork(myBestNetworkID, true);
myManager.reconnect();
MailService.is_Waiting_For_New_Connection = false;
}
}

最佳答案

也许您可以拥有一个扩展了Observable的对象(或实现一个自定义侦听器),该对象会定期(在一个线程中?)检查什么是最好的网络。当您检测到当前网络不再是最好的网络时,您只需通知观察者(或启动侦听器)并实际启用/重新连接到新网络即可。

因此,检测出最佳的网络将始终持续7到15秒,但是,由于它是在后台完成的,因此从一个网络切换到另一个网络几乎是立即有效的。

关于android - 最快的Wifi接入点交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7098250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com