domingo, 4 de marzo de 2012

Identificando el estado e información de la red en Windows Phone

Este es uno de esos post de referencia básica que nos puede ser útil en cualquier momento, además de que muestra una vez más lo muy sencillo que es el desarrollo sobre Windows Phone.

Parte de la experiencia de usuario en las aplicaciones, se encuentra en proporcionarle información sobre lo que sucede que la aplicación o lo que sucede con el dispositivo y que afecta nuestra aplicación, uno de esos datos es la información sobre los servicios de red, con la clase DeviceNetworkInformation del espacio de nombres Microsoft.Phone.Net.NetworkInformation.

Una aplicación disponible en el Marketplace y que se basa en estas funciones es Network Dashboard

Bien, hacerlo nosotros mismos es muy fácil con la clase DeviceNetworkInformation podemos determinar facilmente si la red local esta disponible, si el plan de datos celular local o via roaming está habilitado o si la red inalambrica está habilitada, para ello usamos lineas tan sencillas como las siguientes:

DeviceNetworkInformation.IsNetworkAvailable 
DeviceNetworkInformation.IsCellularDataEnabled DeviceNetworkInformation.IsCellularDataRoamingEnabled 
DeviceNetworkInformation.IsWiFiEnabled 

Tambien podemos conocer de forma fácil cual es el operador celular del teléfono, así:

DeviceNetworkInformation.CellularMobileOperator

También podemos monitorear los cambios en la disponibilidad de la red facilmente suscribiéndonos a el evento NetworkAvailabilityChanged de la clase DeviceNetworkInformation, así:

 DeviceNetworkInformation.NetworkAvailabilityChanged += new EventHandler<NetworkNotificationEventArgs>(ChangeDetected);  

He implementando la interpretación de los datos que arroja en el método que usamos para suscribirnos con un código como este:

 void ChangeDetected(object sender, NetworkNotificationEventArgs e)  
 {  
   string change = string.Empty;  
   switch (e.NotificationType)  
   {  
     case NetworkNotificationType.InterfaceConnected:  
       change = "Connected to " + e.NetworkInterface.InterfaceName;  
       break;  
     case NetworkNotificationType.InterfaceDisconnected:  
       change = "Disconnected from " + e.NetworkInterface.InterfaceName;  
       break;  
     case NetworkNotificationType.CharacteristicUpdate:  
       change = "Characteristics changed for " + e.NetworkInterface.InterfaceName;  
       break;  
     default:  
       change = "Unknown change with " + e.NetworkInterface.InterfaceName;  
       break;  
   }       
 }  

Para finalizar con otra de esas cosas fáciles de hacer en Windows Phone, existe una tarea que permite cambiar el estado de un tipo de conexión, es decir activa o desactivar el Modo Avión, Wifi, Bluetooth o Celular, así de sencillo:


Esta tarea lo que hace es abrir la el modo seleccionado para que el usuario lo encienda o apague, por ejemplo si seleccionamos Modo Avión veremos algo así:


En fin, espero que estas sencillas funciones les sirvan para complementar alguna de sus aplicaciones, hasta el próximo post.

Sorey

No hay comentarios: