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]