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):

[sourcecode language=”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;
}
[/sourcecode]

Código fuente utilización (Java):

[sourcecode language=”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();
}
[/sourcecode]

Código fuente XML (AndroidManifest.xml):

[sourcecode language=”java”]
<!– … –>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!– … –>
[/sourcecode]

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????

Responder a CanihoJR Cancelar la respuesta

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