jueves, 18 de octubre de 2012

Android: Saber si esta conectado en Wifi o en 3G

Buenos días, hoy vamos a ver cómo se puede saber dentro de nuestra aplicación si el terminal / móvil esta conectado a la red a través de Wifi o a través  de la conexión 3G.

El código es bastante simple, captamos el servicio encargado de las comunicaciones del móvil ( ConnectivityManager ) y sacamos los parámetros que necesitamos. En este caso conexión de wifi y 3G.
A continuación os presento el código totalmente comentado para que no hayan muchas dudas. Igualemtne comentar vuestras dudas y/o resultados.



No olvidar que si eres novato antes deberías leer los tutoriales anteriores de Android para saber dónde y cómo introducir este código para su perfecto funcionamiento:

//Recogemos el servicio ConnectivityManager
//el cual se encarga de todas las conexiones del terminal
ConnectivityManager conMan = (ConnectivityManager) 
      getSystemService(Context.CONNECTIVITY_SERVICE);
//Recogemos el estado del 3G
//como vemos se recoge con el parámetro 0
State internet_movil = conMan.getNetworkInfo(0).getState();
//Recogemos el estado del wifi
//En este caso se recoge con el parámetro 1
State wifi = conMan.getNetworkInfo(1).getState();
//Miramos si el internet 3G está conectado o conectandose...
    if (internet_movil == NetworkInfo.State.CONNECTED 
     || internet_movil == NetworkInfo.State.CONNECTING) {
     ///////////////
     //El movil está conectado por 3G
     //En este ejemplo mostraríamos mensaje por pantalla
     Toast.makeText(getApplicationContext(), "Conectado por 3G"
       , Toast.LENGTH_LONG).show();
     //Si no esta por 3G comprovamos si está conectado o conectandose al wifi...
    } else if (wifi == NetworkInfo.State.CONNECTED 
      || wifi == NetworkInfo.State.CONNECTING) {
     ///////////////
     //El movil está conectado por WIFI
     //En este ejemplo mostraríamos mensaje por pantalla
     Toast.makeText(getApplicationContext(), "Conectado por WIFI"
       , Toast.LENGTH_LONG).show();
     }


Muchas gracias! y no olvides escribir tu comentario!!!

2 comentarios:

  1. como se puede comprobar si hay conexion a una direccion especifica?

    ResponderEliminar
    Respuestas
    1. haciendo un ping hacia dicha direccion

      Eliminar