SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
9/26/2011




                                                               Sensores

                                                       Windows Phone dispone de varios sensores
                                                       Permiten determinar la orientación y movimiento del
                                                        dispositivo
                                                       Es posible acceder a cada sensor
                                                       SensorBase<TSensorReading> clase base de APIs
                                                        sensores
                                                       APIs no permitidas bajo pantalla bloqueada ni
                                                        agentes en segundo plano




       Acelerómetro                                            Acelerómetro

 Determina dirección de movimiento                    Leer datos del acelerómetro
                                                        1.   Agregar referencias
 Expresa la aceleración como vector tridimensional
                                                             Microsoft.Devices.Sensors
     Componente X
                                                             Microsoft.Xna.Framework (datos = vector 3D XNA)
     Componente Y
     Componente Z
                                                        2.   Comprobar si está soportado
 Detecta la gravedad y dirección en
  que el usuario mueve el dispositivo                           i f (!Accel erometer.IsSupported)
                                                                {
                                                                       // El di spositivo en el que se está ejecutando l a App no dispone de
                                                                      // a cel erómetro, lo cual se notificará a l usuario con un mensaje
                                                                      Mes s ageBox.Show("El dispositivo no dispone de acelerómetro");
                                                                }




                                                                                                                                                      1
9/26/2011




                Acelerómetro                                                                                      Acelerómetro

     Leer datos del acelerómetro                                                                      Leer datos del acelerómetro
       3.   Inicializar el acelerómetro                                                                4.    Iniciar el acelerómetro


i f (a ccelerometer == null)                                                                                try
{                                                                                                           {
      // Instanciar el Acelerómetro                                                                            accelerometer.Start();
     accelerometer = new Accelerometer();                                                                   }
     accelerometer.TimeBetweenUpdates = TimeSpan.FromMilliseconds(20);                                      catch (InvalidOperationException ex)
     accelerometer.CurrentValueChanged+=new EventHandler<SensorReadingEventArgs                             {
                                      <AccelerometerReading>>(accelerometer_CurrentValueChanged);               MessageBox.Show("No se pudo iniciar el acelerómetro.");
}                                                                                                           }




                Acelerómetro                                                                                      Acelerómetro

     Leer datos del acelerómetro                                                                      Leer datos del acelerómetro
       5.    Implementar manejador del evento CurrentValueChanged                                      7.    Implementar método para detener el acelerómetro
                void accelerometer_CurrentValueChanged(object sender,
                                                                                                                  if (accelerometer != null)
                                                    SensorReadingEventArgs<AccelerometerReading> e)
                                                                                                                  {
                {
                                                                                                                              // Detener el acelerómetro
                    // Llamar a la función de actualización del UI pasándole datos del acelerómetro
                                                                                                                              accelerometer.Stop();
                    Dispatcher.BeginInvoke(() => UpdateUI(e.SensorReading));
                                                                                                                   }
                }


       6.    Actualizar el interfaz de usuario con los nuevos datos
                private void UpdateUI(AccelerometerReading accelerometerReading)                       * Nota: para probar una aplicación que lea datos del acelerómetro en el
                {                                                                                      emulador hay que iniciarlo manualmente en las opciones del emulador.
                     Vector3 acceleration = accelerometerReading.Acceleration;
                     // Mostrar los valores numéricos
                     xTextBlock.Text = "X: " + acceleration.X.ToString("0.00");
                     yTextBlock.Text = "Y: " + acceleration.Y.ToString("0.00");
                     zTextBlock.Text = "Z: " + acceleration.Z.ToString("0.00");
                }




                                                                                                                                                                                   2
9/26/2011




       Acelerómetro                                 Recursos

                                            Centro de desarrollo de WP7 en MSDN
                                           http://msdn.microsoft.com/es-es/windowsphone/default.aspx

                                            AppHub
                                           http://create.msdn.com/
 Demo: Cómo leer datos del acelerómetro
                                            Windows Phone Developer Blog
                                           http://windowsteamblog.com/windows_phone/b/wpdev
                                            MobileNUG
                                           http://www.mobilenug.es

                                            Forums
                                           http://forums.create.msdn.com/forums/




                                                                                                              3

Mais conteúdo relacionado

Mais de Eduardo

Modulo9 Background Agents
Modulo9 Background AgentsModulo9 Background Agents
Modulo9 Background AgentsEduardo
 
Modulo8 Servicio De Notificaciones
Modulo8 Servicio De NotificacionesModulo8 Servicio De Notificaciones
Modulo8 Servicio De NotificacionesEduardo
 
Modulo7 Bases de Datos
Modulo7 Bases de DatosModulo7 Bases de Datos
Modulo7 Bases de DatosEduardo
 
Modulo5 Trucos Web Browser
Modulo5 Trucos Web BrowserModulo5 Trucos Web Browser
Modulo5 Trucos Web BrowserEduardo
 
Modulo4 Indicadores De Progreso
Modulo4 Indicadores De ProgresoModulo4 Indicadores De Progreso
Modulo4 Indicadores De ProgresoEduardo
 
Modulo3 Launchers&amp;Choosers
Modulo3 Launchers&amp;ChoosersModulo3 Launchers&amp;Choosers
Modulo3 Launchers&amp;ChoosersEduardo
 
Modulo 2 Modelo Ejecucion
Modulo 2 Modelo EjecucionModulo 2 Modelo Ejecucion
Modulo 2 Modelo EjecucionEduardo
 
Modulo1 Herramientas De Desarrollo Wp7 1
Modulo1 Herramientas De Desarrollo Wp7 1Modulo1 Herramientas De Desarrollo Wp7 1
Modulo1 Herramientas De Desarrollo Wp7 1Eduardo
 

Mais de Eduardo (8)

Modulo9 Background Agents
Modulo9 Background AgentsModulo9 Background Agents
Modulo9 Background Agents
 
Modulo8 Servicio De Notificaciones
Modulo8 Servicio De NotificacionesModulo8 Servicio De Notificaciones
Modulo8 Servicio De Notificaciones
 
Modulo7 Bases de Datos
Modulo7 Bases de DatosModulo7 Bases de Datos
Modulo7 Bases de Datos
 
Modulo5 Trucos Web Browser
Modulo5 Trucos Web BrowserModulo5 Trucos Web Browser
Modulo5 Trucos Web Browser
 
Modulo4 Indicadores De Progreso
Modulo4 Indicadores De ProgresoModulo4 Indicadores De Progreso
Modulo4 Indicadores De Progreso
 
Modulo3 Launchers&amp;Choosers
Modulo3 Launchers&amp;ChoosersModulo3 Launchers&amp;Choosers
Modulo3 Launchers&amp;Choosers
 
Modulo 2 Modelo Ejecucion
Modulo 2 Modelo EjecucionModulo 2 Modelo Ejecucion
Modulo 2 Modelo Ejecucion
 
Modulo1 Herramientas De Desarrollo Wp7 1
Modulo1 Herramientas De Desarrollo Wp7 1Modulo1 Herramientas De Desarrollo Wp7 1
Modulo1 Herramientas De Desarrollo Wp7 1
 

Modulo16 Acelerometro

  • 1. 9/26/2011 Sensores  Windows Phone dispone de varios sensores  Permiten determinar la orientación y movimiento del dispositivo  Es posible acceder a cada sensor  SensorBase<TSensorReading> clase base de APIs sensores  APIs no permitidas bajo pantalla bloqueada ni agentes en segundo plano Acelerómetro Acelerómetro  Determina dirección de movimiento  Leer datos del acelerómetro 1. Agregar referencias  Expresa la aceleración como vector tridimensional Microsoft.Devices.Sensors  Componente X Microsoft.Xna.Framework (datos = vector 3D XNA)  Componente Y  Componente Z 2. Comprobar si está soportado  Detecta la gravedad y dirección en que el usuario mueve el dispositivo i f (!Accel erometer.IsSupported) { // El di spositivo en el que se está ejecutando l a App no dispone de // a cel erómetro, lo cual se notificará a l usuario con un mensaje Mes s ageBox.Show("El dispositivo no dispone de acelerómetro"); } 1
  • 2. 9/26/2011 Acelerómetro Acelerómetro  Leer datos del acelerómetro  Leer datos del acelerómetro 3. Inicializar el acelerómetro 4. Iniciar el acelerómetro i f (a ccelerometer == null) try { { // Instanciar el Acelerómetro accelerometer.Start(); accelerometer = new Accelerometer(); } accelerometer.TimeBetweenUpdates = TimeSpan.FromMilliseconds(20); catch (InvalidOperationException ex) accelerometer.CurrentValueChanged+=new EventHandler<SensorReadingEventArgs { <AccelerometerReading>>(accelerometer_CurrentValueChanged); MessageBox.Show("No se pudo iniciar el acelerómetro."); } } Acelerómetro Acelerómetro  Leer datos del acelerómetro  Leer datos del acelerómetro 5. Implementar manejador del evento CurrentValueChanged 7. Implementar método para detener el acelerómetro void accelerometer_CurrentValueChanged(object sender, if (accelerometer != null) SensorReadingEventArgs<AccelerometerReading> e) { { // Detener el acelerómetro // Llamar a la función de actualización del UI pasándole datos del acelerómetro accelerometer.Stop(); Dispatcher.BeginInvoke(() => UpdateUI(e.SensorReading)); } } 6. Actualizar el interfaz de usuario con los nuevos datos private void UpdateUI(AccelerometerReading accelerometerReading) * Nota: para probar una aplicación que lea datos del acelerómetro en el { emulador hay que iniciarlo manualmente en las opciones del emulador. Vector3 acceleration = accelerometerReading.Acceleration; // Mostrar los valores numéricos xTextBlock.Text = "X: " + acceleration.X.ToString("0.00"); yTextBlock.Text = "Y: " + acceleration.Y.ToString("0.00"); zTextBlock.Text = "Z: " + acceleration.Z.ToString("0.00"); } 2
  • 3. 9/26/2011 Acelerómetro Recursos  Centro de desarrollo de WP7 en MSDN http://msdn.microsoft.com/es-es/windowsphone/default.aspx  AppHub http://create.msdn.com/  Demo: Cómo leer datos del acelerómetro  Windows Phone Developer Blog http://windowsteamblog.com/windows_phone/b/wpdev  MobileNUG http://www.mobilenug.es  Forums http://forums.create.msdn.com/forums/ 3