[ES] Escuchar cambios en la conexión W8.1/WP8.1

No hay mucha información al respecto de cómo gestionar el cambio de estado de una conexión en Windows phone 8.1 porque es relativamente nuevo. Lo esencial es recordar siempre que al estar en fusión Windows 8.1 con Windows Phone lo más probable es que si queremos realizar una app en Windows Phone podamos mirar todas aquellas soluciones que ya se daban para Windows 8.1.

Y este es uno de los casos, si intentáramos seguir las soluciones que se daban para la versión 8 de Windows Phone acabaríamos por no encontrar salida y ver que nuestro evento no reacciona. Ante nuestra cara de estupor no hay que perder la calma, respirar un poco y ver que la gestión de la conexión se hace diferente en Windows 8.1 y por tanto podemos usar el namespace Windows.Networking.Connectivity en lugar de Microsoft.Phone.Net.NetworkInformation y así gestionar la conexión de las apps Windows 8.1 y Windows Phone 8.1.

En mi caso lo que queríamos crear era una clase heredable para que luego otras clases que vamos a usar a lo largo del desarrollo puedan llevar consigo el evento que les avisará de un cambio de estado en la conexión y así poder reaccionar al mismo, moviendo o haciendo persistentes datos importantes de la aplicación.

El sample es realmente sencillo, en el constructor de la clase sumaremos un nuevo handler al NetworkStatusChanged de NetworkInformation.

De esta forma cuando se herede la clase al inicializarla estará escuchando el evento de cambio de estado de la conexión. Añadimos también un método que nos dice si se está conectado o no y por último nuestro manejador de conexión. Una vez salta sólo tendremos que preguntar si se está conectado y actuar en consecuencia.

No es una solución compleja y revisando cómo se evalúa el método IsConnected se pueden sacar muchas cosas acerca de cómo gestionar otros eventos de conexión cómo, por ejemplo, saber si la conexión es alta o baja, porque quizás bajo unos niveles muy bajos de conexión no compense ni siquiera intentar enviar o solicitar información.