开发者

How to check internet connectivity in android?

开发者 https://www.devze.com 2023-01-07 00:50 出处:网络
friends, i am trying to check internetconnectivity in android and using following code final ConnectivityManager conn_manager = (ConnectivityManager)

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消