¿Cómo comprobar la conectividad de Internet en android?

amigos,

Estoy tratando de comprobar Internetconnectivity en android y el uso de código siguiente

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; } 

Pero me da la red / conectividad wifi si wifi está conectado que me da la verdad y si Internet no está conectado a continuación, también me da la verdad.

Cualquiera me guía cuál es la solución?

Probablemente algún problema con la lógica que tiene en la cláusula if allí.

Yo uso esto:

 /** * 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; } 

Puede utilizar requstRouteToHost para comprobar si puede conectarse a una dirección IP específica.

Utilice esta biblioteca ingeniosa: http://code.google.com/p/connectivity

Puede suscribirse a la notificación de estado de la red y obtener una devolución de llamada cuando cambia el estado de la red. O, puede consultar directamente si la red está disponible. Muy fácil de usar.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.