Ahora que ya sabemos como hacer una vista web para mostrar nuestras aplicaciones web dentro de nuestras apps Android, vamos a necesitar revisar cuando tenemos conexión y decidir que hacer en caso de que no haya, ese es el tópico que vamos a revisar el día de hoy ¡Manos a la obra!
Iniciando el proyecto
Llamemos a nuestro proyecto MiConexion
Elegimos nuestra plataforma
Y Luego una Empty Activity
Le llamaremos ConexionActivity
Revisando si hay conexión
Una vez iniciado nuestro proyecto, vamos a abrir el archivo activity_conexion que se acaba de crear y modificamos el único TextView que hay ahí, añadiéndole un id desde el modo de código
android:id="@+id/txtMensaje"
Ahora vamos al archivo ConexiónActivity.java, vamos a crear un método que regrese false o true, según sea el caso.
public boolean checarRed(){
boolean conectado;
ConnectivityManager conman = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info_wifi = conman.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo info_data = conman.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if(String.valueOf(info_wifi.getState()).equals("CONNECTED")){
conectado = true;
}else{
if(String.valueOf(info_data.getState()).equals("CONNECTED")){
conectado = true;
}else{
conectado = false;
}
}
return conectado;
}
ConnectivityManager es un objeto que gestiona las conexiónes que recibe nuestro dispositivo, ya sea wifi, datos, bluetooth, etc. NetworkInfo me permite saber precisamente el estado de cada tipo de conexión, en este caso creamos uno para la conexión wifi y otro para la conexión de datos móviles. El método getState entrega estados como: CONNECTED o DISCONNECTED según sea el caso.
Añadimos una variable TextView al principio de nuestra clase
private TextView texto;
La instanciamos dentro de nuestro onCreate
texto = findViewById(R.id.txtMensaje);
Y probamos usando nuestro método checarRed, si estamos conectados cambiaremos el texto del TextView por un mensaje apropiado, si no estamos conectados, avisaremos por medio de un Toast y terminaremos la aplicación.
if(checarRed()){
texto.setText("Conexión establecida");
}else{
Toast.makeText(this, "Su aplicación no tiene acceso, conéctese e intente de nuevo", Toast.LENGTH_LONG).show();
finish();
}
Por último, abrimos el AndroidManifest.xml y añadimos los permisos correspondientes
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
Veamos el ejemplo funcionando (Recuerda verlo a pantalla completa)
Docente, IT Manager, Blogger & Developer. Escribo por diversión, educo por pasión. | Grandstanding is not my thing.
Muy buen aporte Gracias