2013-03-11 48 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