2013-04-06 61 views
1
連接WIFI

我工作的這涉及到連接到特定無線網絡連接範圍時,Android應用程序。一旦我完成了一些東西,我試圖連接回我的原始WiFi。出於某種奇怪的原因,它連接到我原來的無線網絡,因爲我想要它,但約30秒左右後,它會斷開連接。當我檢查設備上的WiFi設置時,它顯示WiFi已禁用。連接Android中

綜上所述:
1.連接到WiFi網絡W1。
2.當無線上網W2在範圍內,連接到(使用SSID),但是,請記住W1的SSID供以後使用。從W2
3.斷開並尋找在wificonfiguration列表(使用SSID)W1。找到後,連接到。

所有三個步驟都在工作,但由於某種原因,在步驟3成功後不久(< 1分鐘),與W1的連接被丟棄並被設備禁用。這隻有當我通過代碼更改WiFi連接時纔會發生。這裏是我的代碼如下所示: 「淨」變量包含原來的wifi連接的SSID(W1)的SSID值。有沒有人有任何想法,爲什麼我會重新連接到原來的Wifi後不久連接丟棄?

if(net!=""){ 
    List<WifiConfiguration> list = wifiManager.getConfiguredNetworks(); 
    for(WifiConfiguration i : list) { 
     if(i.SSID != null && i.SSID.contains(net)) {    
      wifiManager.disconnect();       

      wifiManager.enableNetwork(i.networkId, true); 

      wifiManager.setWifiEnabled(true);     
      break; 
     }   
    } 
    } 
+0

設備連接到w1? – 2013-04-06 14:46:25

+0

是的,w2連接到w1時進入範圍。我從w1斷開連接到w2。然後關閉w2並重新建立與w1的連接。它連接到w1,但然後迅速下降 – 2013-04-06 18:05:09

+0

「何時」意味着在w1連接後及時? – 2013-04-06 18:13:25

回答

1

我有我不知道這是要解決的問題或沒有,但如果你把

if(net!=""){ 
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks(); 
for(WifiConfiguration i : list) { 
    if(i.SSID != null && i.SSID.contains(net)) {    
     wifiManager.disconnect();  

     //place a sleep on thread so that the underlying hardware gets some time to disconnect 
     Thread.sleep(10000); 
     //Now trying connecting to the previous network. Also try increasing the time to wait if 5 seconds is not working. 

     wifiManager.enableNetwork(i.networkId, true); 

     wifiManager.setWifiEnabled(true);     
     break; 
    }   
} 
} 

這將是值得在下面的代碼試圖

建議編輯:

它似乎與間隔超過10秒的工作。這個時間間隔是我認爲依賴於設備的WiFi芯片組,它需要一些時間從當前網絡斷開連接並連接到其他網絡。此外,如果該器件具有低質量的芯片組,那麼它可能不會W2進來的範圍後,當,當你執行你的測試需要更長的時間還有我認爲如果該設備具有高品質的芯片組,那麼這將是更快..

+0

這沒有奏效。我確實將線程延長了10秒,但仍然沒有任何提示。此應用程序需要以快速的方式執行,所以如果我將其延長超過10秒,並且它的工作仍然不能爲我提供可接受的解決方案。無論如何感謝您的建議。我很欣賞它。 – 2013-04-08 22:41:08

+0

@RZulfekar至少能聽到它在超過10秒的時間內工作很好。請讓我知道它有多少時間差異?此時間間隔取決於設備的WiFi芯片組,需要一段時間才能斷開與當前網絡的連接並與其他網絡連接。另外,如果設備的芯片組質量低,那麼可能需要更長的時間,您使用什麼設備進行測試?另外我認爲如果該設備具有高質量的芯片組,那麼它將快得多... – 2013-04-09 08:12:22

+0

再次感謝。無論如何,我將它標記爲答案,因爲它確實是 – 2013-04-09 12:21:36