Tu aplicación o juego para Phone 7 (esto vale para Silverlight y XNA) usa webservices u otros tipos de comunicación con el mundo… en un entorno tan variante como es el de un móvil, es lógico comprobar que hay conectividad antes de llamar a un webservice no os parece? Para ello el espacio de nombres Microsoft.Phone.Net.NetworkInformation tiene cosas interesantes!
Tenemos a NetworkInterfaceType, que nos devolverá la interfaz de red a la que estamos conectados -es un enumerado con muchísimos valores, que nos dirá si tenemos Wifi, ADSL, etc-, o bien que no hay conexión disponible (NetworkInterfaceType.None). El uso es muy sencillo, aunque la ejecución algo lenta, por lo que hay que tener eso en cuenta cuando lo usemos:
var red = NetworkInterface.NetworkInterfaceType;
if (red == NetworkInterfaceType.Wireless80211)
System.Diagnostics.Debug.WriteLine(«estamos con wifi»);
else if (red == NetworkInterfaceType.None)
System.Diagnostics.Debug.WriteLine(«sin conexión»);
En este caso he comrobado si la conexión es wifi, pero si queremos saber si hay conexión valdría con red != NetworkInterfaceType.None
Para ello también existe el método GetIsNetworkAvailable(), más rápido, pero que no funciona con el emulador (siempre devuelve true):
bool hayRed = Microsoft.Phone.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();
Así pues si necesitamos acceder a esta información, yo recomendaría crear un método que wrapee esta funcionalidad, y ejecute un método u otro del framework dependiendo de si estamos en modo depuración o no.
Tu aplicación o juego para Phone 7 (esto vale para Silverlight y XNA) usa webservices u otros