2013-03-11 55 views
0

我正面臨着在我的Android應用程序中重新調整互聯網的情況。我在我的應用程序中檢查互聯網的可用性。但我想要正確檢查連接。現在,如果我的互聯網連接,但信號沒有得到。檢查適當的互聯網是否可用

ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED){ 
    //do what ever 
} 
else{ 
    Toast.makeText(getApplicationContext(), "Please activate the internet", Toast.LENGTH_SHORT).show(); 
} 

如果信號丟失,它不顯示internet is not available。所以我想要一些關於如何在每次檢查信號的代碼。

回答

1

試試這個,

public final boolean isInternetON(Context context) { 
    boolean haveConnectedWifi = false; 
    boolean haveConnectedMobile = false; 

    ConnectivityManager cm = (ConnectivityManager) context 
      .getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo[] netinfo = cm.getAllNetworkInfo(); 
    for (NetworkInfo ni : netinfo) { 
     if (ni.getTypeName().equalsIgnoreCase("WIFI")) 
      if (ni.isAvailable()) 
       haveConnectedWifi = true; 
     if (ni.getTypeName().equalsIgnoreCase("MOBILE")) 
      if (ni.isAvailable()) 
       haveConnectedMobile = true; 

    } 
    return haveConnectedWifi || haveConnectedMobile; 

} 
+0

他的情況是不同的穆拉利。舉例來說,有時你可能已經連接到wifi,但無線路由器的DSL(或網線)已斷開連接。 – 2013-03-11 11:59:02

+0

@MayuMayooresan它會返回錯誤的值。基於此布爾值很容易識別網絡未連接 – MuraliGanesan 2013-03-11 12:02:17

+0

+1。一旦我回家,我會檢查它。 – 2013-03-11 12:03:41