El documento presenta los sensores disponibles en Windows Phone 7 Mango, enfocándose en la brújula. Explica que la brújula mide el ángulo de rotación del dispositivo respecto al polo norte magnético y cómo acceder a sus datos mediante el uso de la clase Compass. También advierte sobre consideraciones de diseño como la necesidad de calibrar la brújula con frecuencia y comprobar la disponibilidad del sensor en el dispositivo.
1. 9/26/2011
Agenda
Sensores en Windows Phone 7 Mango
La brújula
Consideraciones de diseño
Cómo utilizar la brújula
Sensores en Windows Phone 7 Sensores en Windows Phone 7
Mango Mango
Windows Phone 7 soporta varios sensores que Las APIs de acceso a los sensores heredan de la
determinan la orientación y movimiento del dispositivo clase SensorBase<TSensorReading>
Modos de entrada de datos del usuario 3 sensores en Windows Phone 7 Mango
Brújula
Acelerómetro
Giroscopio
¡¡No todos los dispositivos tienen todos los
sensores!!
1
2. 9/26/2011
La brújula Consideraciones de diseño
Determina el ángulo de rotación del dispositivo La API de la brújula sólo funciona con el dispositivo
respecto al Polo Norte magnético de la Tierra. en posición horizontal
Se pueden medir también las fuerzas magnéticas alrededor Para otras orientaciones, utilizar la clase Motion
del dispositivo La brújula no puede utilizarse con la pantalla
Es necesario calibrarla con frecuencia bloqueada
La brújula no puede utilizarse en agentes en segundo
No todos los dispositivos están equipados con plano (background agents)
brújula Windows Phone Marketplace mostrará una
Comprobar si existe el sensor antes de utilizarlo advertencia al usuario cuando desee instalar una
aplicación que requiere sensores no presentes en el
dispositivo
Cómo utilizar la brújula Cómo utilizar la brújula
if (compass == null) Frecuencia con la que se
{ reciben datos de la brújula
Compass compass; Comprobar siempre compass = new Compass(); (2 ms por defecto)
que el dispositivo tiene compass.TimeBetweenUpdates = TimeSpan.FromMilliseconds(1);
if (!Compass.IsSupported) brújula compass.CurrentValueChanged += new
{ EventHandler<SensorReadingEventArgs<CompassReading>>(compa
MessageBox.Show(“Dispositivo sin brújula”); ss_CurrentValueChanged);
Acción a realizar cada vez
} compass.Start();
que se reciben datos de la
}
brújula
. . .
if (compass != null) Recuperación y
Inicia la brújula
{ procesado de
compass.Stop(); datos de la brújula
}
Para la brújula
2
3. 9/26/2011
Cómo utilizar la brújula Recursos
Centro de desarrollo de WP7 en MSDN
http://msdn.microsoft.com/es-es/windowsphone/default.aspx
void compass_CurrentValueChanged(object sender,
SensorReadingEventArgs<CompassReading> e) AppHub
{ http://create.msdn.com/
//Procesar los datos leídos del sensor
}
Windows Phone Developer Blog
http://windowsteamblog.com/windows_phone/b/wpdev
Información recuperada: Precisión (en grados) del rumbo
•HeadingAccuracy Rumbo (en grados) en sentido horario MobileNUG
•Magnetic Heading respecto al Polo Norte Magnético http://www.mobilenug.es
•Magnetom eterReading Datos leídos del magnetómetro (en microteslas)
•Timestamp Forums
Momento exacto de la lectura de datos
•TrueHeading http://forums.create.msdn.com/forums/
Rumbo (en grados) en sentido horario desde el
Norte geográfico
3