Comprobar la Conexion de Internet en Android | Wifi y Datos

Comprobar la Conexion de Internet en Android | Wifi y Datos

En este Articulo veremos como comprobar la Conexion de Internet en Android antes de realizar determinada accion que necesite esta conexion, analizaremos como testear al conexion tanto Wifi como de Datos y mostrar un mensaje de advertencia. Para este Ejemplo haremos uso de la clase ConnectivityManager de Android y realizaremos un pequeño ejemplo en el que obtendremos una lista de paises de un webservice pero para lo cual antes necesitaremos comprobar la conexion a Internet en nuestro dispositivo android.

Escenario

Como dijimos antes haremos aqui un sencillo ejemplo de una app que realiza una accion en internet para lo cual necesitaremos comprobar que existe conexion a internet en nuestro dispositivo, para lo cual haremos uso de la clase ConnectivityManager de android y mostraremos un alertDialog para avisar al usuario, por supuesto tu quedras cambiar esta parte por la accion que desees cuando no se tenga con conexion a internet.

Lo primero que tendriamos seria un codigo como este:

if(estaConectado()){
obtenerCapitales();
}

 

donde obtenerCapitales es el metodo que necesita conexion a internet y que queremos comprobar antes si existe determinada conexion.


¿Sabías que?

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.

Udemy

Despues vemos el codigo del metodo estaConectado

protected Boolean estaConectado(){
if(conectadoWifi()){
showAlertDialog(Main.this, "Conexion a Internet",
"Tu Dispositivo tiene Conexion a Wifi.", true);
return true;
}else{
if(conectadoRedMovil()){
showAlertDialog(Main.this, "Conexion a Internet",
"Tu Dispositivo tiene Conexion Movil.", true);
return true;
}else{
showAlertDialog(Main.this, "Conexion a Internet",
"Tu Dispositivo no tiene Conexion a Internet.", false);
return false;
}
}
}

 

donde simplemente seleccionamos la accion a realizar en determinado caso ( nosotros mostramos un alertDialog :yum: )

Testeando Conexion Wifi en Android

Para comprobar la conexion a Internet mediante Wifi el metodo conectadoWifi seria asi

protected Boolean conectadoWifi(){
ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo info = connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (info != null) {
if (info.isConnected()) {
return true;
}
}
}
return false;
}

 

Testeando Conexion de Datos en Android

El metodo conectadoRedMovil comprueba la conexion a la RedMovil del dispositivo android

protected Boolean conectadoRedMovil(){
ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo info = connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (info != null) {
if (info.isConnected()) {
return true;
}
}
}
return false;
}

 

Todo el Codigo

public class Main extends Activity{
TextView capitales;

public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

capitales = (TextView) findViewById(R.id.txt_capitales);

if(estaConectado()){
obtenerCapitales();
}
}

private void obtenerCapitales(){
//OTRA CLASE DONDE REALIZO MI WEBSERVICE
ObtenerCapitalesAsyncTask tarea = new ObtenerCapitalesAsyncTask(capitales);
tarea.execute();
}

protected Boolean estaConectado(){
if(conectadoWifi()){
showAlertDialog(Main.this, "Conexion a Internet",
"Tu Dispositivo tiene Conexion a Wifi.", true);
return true;
}else{
if(conectadoRedMovil()){
showAlertDialog(Main.this, "Conexion a Internet",
"Tu Dispositivo tiene Conexion Movil.", true);
return true;
}else{
showAlertDialog(Main.this, "Conexion a Internet",
"Tu Dispositivo no tiene Conexion a Internet.", false);
return false;
}
}
}

protected Boolean conectadoWifi(){
ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo info = connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (info != null) {
if (info.isConnected()) {
return true;
}
}
}
return false;
}

protected Boolean conectadoRedMovil(){
ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo info = connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (info != null) {
if (info.isConnected()) {
return true;
}
}
}
return false;
}

public void showAlertDialog(Context context, String title, String message, Boolean status) {
AlertDialog alertDialog = new AlertDialog.Builder(context).create();

alertDialog.setTitle(title);

alertDialog.setMessage(message);

alertDialog.setIcon((status) ? R.drawable.success : R.drawable.fail);

alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});

alertDialog.show();
}
}

 

Resultado


Comprobar la Conexion de Internet en Android 2 Comprobar la Conexion de Internet en Android 2

Comprobar la Conexion de Internet en Android | Wifi y Datos

 

Clic para valorar esta información
[Total: 0 Promedio: 0]