2013-07-19 26 views
3

我有檢查網絡連接使用的函數:getAllNetworkInfo檢測WiFi或移動連接,但不能兩個

ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
NetworkInfo[] networkInfos = cm.getAllNetworkInfo(); 

但是,一旦Wifi網絡連接,爲斷開連接在移動網絡中給出

如何知道兩個網絡是否連接?

提前感謝您的時間。

+0

您是否只需要網絡連接或需要獲取每個連接的網絡詳細信息? –

+0

我需要通知用戶有關移動和WiFi連接。 –

回答

4

試試這個:

ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
NetworkInfo wifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
NetworkInfo mobileNet = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
if(netInfo!=null){ 
    if(mobileNet.isConnected()){ 
    System.out.println("Mobile Network is connected"); 

    } 
    if(wifi.isConnected()){ 
    System.out.println("Wi-fi Network is connected"); 
    } 

} 
+0

沒有抱歉,這是我已經使用,但沒有成功...謝謝 –

1

我怎麼會知道,如果這兩個網絡連接?

您可以創建肯定的方法來檢查兩種類型e.q.

if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { 
    // do your stuff 
} 
if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { 
    // do your stuff 
} 

但在Android操作系統中,如果WiFi和移動網絡可用(並且可以連接到),OS會選擇無線上網的默認所以它會使用WiFi作爲活動的網絡連接。

+0

沒有對不起,這是我已經使用,但沒有成功......謝謝 –

0

Android設備只能有一個連接! (WiFi或移動)

  1. 如果提供無線網絡連接 - 系統會嘗試連接到它
  2. 如果無線網絡不可用,手機被打開 - 系統會嘗試連接到移動
  3. 當系統連接到WiFi - 你不能'確保移動將工作,直到你嘗試連接。
  4. Movable相同
+0

感謝您的答案。 但是,系統如何能夠在智能手機的頂部顯示這兩個圖標? –

+0

你使用什麼設備? Android版本?您的兩個圖標是同時顯示數據傳輸還是隻顯示兩個網絡都打開? – AndrewS

+0

嗨安德魯,爲我遲到抱歉。 我在Android 4.1.2上使用Wiko Cink Five,但圖標的可見性與設備相同。 –

相關問題