17 private static final String TAG =
"ConnectionMonitor";
18 private final ConnectivityManager connectivityManager;
20 private final Context context;
21 private boolean isRegistered =
false;
37 this.context = context;
38 this.connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
39 this.listener = listener;
50 NetworkRequest networkRequest =
new NetworkRequest.Builder()
51 .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
54 if (connectivityManager !=
null) {
56 connectivityManager.registerNetworkCallback(networkRequest, networkCallback);
58 Log.d(TAG,
"Monitoreo de conexión iniciado");
62 if (listener !=
null) {
63 listener.onConnected();
66 if (listener !=
null) {
67 listener.onDisconnected();
70 }
catch (Exception e) {
71 Log.e(TAG,
"Error al registrar callback de red", e);
85 connectivityManager.unregisterNetworkCallback(networkCallback);
87 Log.d(TAG,
"Monitoreo de conexión detenido");
88 }
catch (Exception e) {
89 Log.e(TAG,
"Error al detener monitoreo", e);
96 private final ConnectivityManager.NetworkCallback networkCallback =
new ConnectivityManager.NetworkCallback() {
98 public void onAvailable(@NonNull Network network) {
99 super.onAvailable(network);
100 Log.d(TAG,
"Red disponible");
101 if (listener !=
null) {
107 public void onLost(@NonNull Network network) {
108 super.onLost(network);
109 Log.d(TAG,
"Red perdida");
110 if (listener !=
null) {