Veremos cómo detectar cambios de conexión en Android en nuestros desarrollos de Apps, lo haremos implementando la interfaz BroadcastReceiver, con esto ahora podremos saber cuando el dispositivo se ha desconectado o se ha vuelto a conectar.
En muchas ocasiones nos interesa conocer los cambios en la conexión a Internet del dispositivo donde tenemos nuestra App.
En android esto lo podemos hacer extendiendo la clase BroadcastReceiver.
Actualmente estoy trabajando en una app que muestra un webview y me interesa que al perder y volver a conectar me recargue nuevamente la url.

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.
UdemyAsí que si tienes un proyecto con requerimientos similares donde tengamos la necesidad de conocer los cambios de conexión a Internet sigue leyendo.
Lo primero es crear una nueva clase llamada NetworkChangeReceiver o como quieras nombrarla.
Extenderemos esta clase con BroadcastReceiver y la escribiremos así.
public class NetworkChangeReceiver extends BroadcastReceiver { ConnectionChangeCallback connectionChangeCallback; @Override public void onReceive(Context context, Intent intent) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting(); if (connectionChangeCallback != null) { connectionChangeCallback.onConnectionChange(isConnected); } } public void setConnectionChangeCallback(ConnectionChangeCallback connectionChangeCallback) { this.connectionChangeCallback = connectionChangeCallback; } public interface ConnectionChangeCallback { void onConnectionChange(boolean isConnected); } }
Dejamos de lado esta clase y nos pasamos a nuestra actividad que nos interesa.
Dentro de nuestro método oncreateview registramos nuestro receiver haciendo uso de la clase anteriormente creada.
// Registrar monitoreo de conexión IntentFilter intentFilter = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE"); NetworkChangeReceiver networkChangeReceiver = new NetworkChangeReceiver(); getActivity().registerReceiver(networkChangeReceiver, intentFilter); networkChangeReceiver.setConnectionChangeCallback(this);
Con esto ya quedará registrado el callback cuando exista un cambio de status en nuestra conexión.
Ahora haremos lo que queramos cuando tengamos conexión o cuando la perdamos mediante el método onConnectionChange().
@Override public void onConnectionChange(boolean isConnected) { if(isConnected){ Toast.makeText(view.getContext(),"Conectado a Internet", Toast.LENGTH_SHORT).show(); Wv.loadUrl(VideoURL); } else{ Toast.makeText(view.getContext(),"No hay conexión", Toast.LENGTH_SHORT).show(); } }
En mi caso lo utilizo para recargar la vista de un webview.
Tú puedes usar este método como a ti te convenga más.
Listo, ahora ya monitoreamos los cambios de conexión a Internet en Android.
Si esta información te ha sido de utilidad no olvides compartirla en tu red social favorita o dejarnos un comentario en la sección de abajo si tienes cualquier duda o comentario respecto con este tema, será un placer ayudarte.
¡Hasta luego!