How to check internet connectivity in android?
friends,
i am trying to check internetconnectivity in android and using following code
final ConnectivityManager conn_manager = (ConnectivityManager)
this.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo network_info = conn_manager.getActiveNetworkInfo();
if ( network_info != null && network_info.isConnected() )
{
return true;
}
开发者_如何学运维 else
{
return false;
}
but it gives me network/ wifi connectivity if wifi is connected it gives me true and if internet is not connected then it also gives me true.
any one guide me what is the solution?
Probably some issue with the logic you have in the if
clause there.
I use this:
/**
* Checks if we have a valid Internet Connection on the device.
* @param ctx
* @return True if device has internet
*
* Code from: http://www.androidsnippets.org/snippets/131/
*/
public static boolean haveInternet(Context ctx) {
NetworkInfo info = (NetworkInfo) ((ConnectivityManager) ctx
.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (info == null || !info.isConnected()) {
return false;
}
if (info.isRoaming()) {
// here is the roaming option you can change it if you want to
// disable internet while roaming, just return false
return false;
}
return true;
}
You can use requstRouteToHost to check if you can connect to a specific IP address.
Use this nifty library: http://code.google.com/p/connectivity
You can subscribe to network status notification and get a callback when network status changes. Or, you can query directly if network is available. Very simple to use.
精彩评论