Como chequear si existe conexión a internet

Objetivo:

Chequear si el dispositivo móvil dispone de una conexión a internet.

Muchos de los fallos en aplicaciones para Android vienen a causa de no tratar todos los casos posibles. Para una aplicación que requiera contenido de la red de redes, lo correcto es comenzar verificando que el dispositivo tiene conexión a internet.

Para ello podemos utilizar una simple función exiteConexionIntenet(), que devolverá verdadero en caso de existir y falso en caso contrario.

No podemos olvidar los permisos especiales en nuestro AndroidManifest.xml, que también mencionamos más abajo: internet (android.permission.INTERNET) y estado de la red (android.permission.ACCESS_NETWORK_STATE).

Mostramos la implementación de dicha función y cómo usarla:

Código fuente función (Java):

/**
* Mira si hay conexión a internet.
* @return boolean
*/
public boolean exiteConexionInternet() {
   ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo netInfo = cm.getActiveNetworkInfo();
   if (netInfo != null && netInfo.isConnectedOrConnecting()) {
      return true;
   }
   return false;
}

Código fuente utilización (Java):

if (exiteConexionInternet()){
   //acciones realizables, teniendo conexión a internet
   //...
}else{
   Toast.makeText(Esta_Activity.this, "Requerida conexión a internet", Toast.LENGTH_LONG).show();
}

Código fuente XML (AndroidManifest.xml):

<!-- ... -->
   <uses-permission android:name="android.permission.INTERNET" />
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- ... -->

2 comentarios en “Como chequear si existe conexión a internet

  1. Buenas! he visto un ejemplo parecido a este en varios sitios, y siempre que lo intento, me marca “getSystemService” como error, segun la descripcion de eclipse, me pide que implemente el metodo, le doy y me crea uno nuevo…. en blanco, imagino, que algo falla :/ alguna idea?? algun import que no se haya importado automaticamente ctrl+o?

  2. una pregunta este codigo solo verifica si el wifi o los datos estan encendidos en el dispositivo pero no si hay salida a internet, como puedo lograr eso????

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena el captcha please!! *