1
我正在開發一個音頻通信應用程序,它要求android手機從一個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;
}
}
您應該捕獲返回值,而不是假設連接嘗試成功。 – Brian