tags:

views:

162

answers:

2

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?

A: 

You can use requstRouteToHost to check if you can connect to a specific IP address.

Firas Assaad
+2  A: 

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;
}
Pentium10
How is it possible to extend this code to check Internet Connectivity in time intervals?
ChrisBenyamin
Probably a bad idea to monitor in time intervals, instead you should subscribe to the connectivity broadcast and action on it. See this related question: http://stackoverflow.com/questions/3307237/how-can-i-monitor-the-network-connection-status-in-android/3307565#3307565
Pentium10