La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Capacidades avanzadas Jose Antonio Gallego Jefe de proyectos Eduardo Ortega MVP-Windows Phone.

Presentaciones similares


Presentación del tema: "Capacidades avanzadas Jose Antonio Gallego Jefe de proyectos Eduardo Ortega MVP-Windows Phone."— Transcripción de la presentación:

1 Capacidades avanzadas Jose Antonio Gallego Jefe de proyectos Eduardo Ortega MVP-Windows Phone

2 Windows Phone 7.5 Acelerómetro

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

4 Windows Phone Acelerómetro Determina dirección de movimiento Expresa la aceleración como vector tridimensional Componente X Componente Y Componente Z Detecta la dirección en que el usuario mueve el dispositivo

5 Windows Phone Acelerómetro Leer datos del acelerómetro 1. Agregar referencias Microsoft.Devices.Sensors Microsoft.Xna.Framework (datos = vector3) 2. Comprobar si está soportado if (!Accelerometer.IsSupported) { // El dispositivo en el que se está ejecutando la App no dispone de // acelerómetro, lo cual se notificará al usuario con un mensaje MessageBox.Show("El dispositivo no dispone de acelerómetro"); }

6 Windows Phone Acelerómetro Leer datos del acelerómetro 3. Inicializar el acelerómetro if (accelerometer == null) { // Instanciar el Acelerómetro accelerometer = new Accelerometer(); accelerometer.TimeBetweenUpdates = TimeSpan.FromMilliseconds(20); accelerometer.CurrentValueChanged+=new EventHandler(accelerometer_CurrentValueChanged); accelerometer.Start(); }

7 Windows Phone Acelerómetro Leer datos del acelerómetro 4. Implementar manejador del evento CurrentValueChanged 5. Actualizar el interfaz de usuario con los nuevos datos void accelerometer_CurrentValueChanged(object sender, SensorReadingEventArgs e) { // Llamar a la función de actualización del UI pasándole datos del acelerómetro Dispatcher.BeginInvoke(() => UpdateUI(e.SensorReading)); } private void UpdateUI(AccelerometerReading accelerometerReading) { 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"); }

8 Demo Windows Phone 7.5 Acelerómetro 8

9 Windows Phone 7.5 Giróscopo

10 Windows Phone El giróscopo Determina la velocidad rotacional del dispositivo en los ejes X, Y, Z. – Los valores obtenidos del sensor del giróscopo determinan la orientación del dispositivo en el espacio – No todos los dispositivos están equipados con giróscopo Comprobar si existe el sensor antes de utilizarlo

11 Windows Phone Cómo utilizar el giróscopo if (gyroscope == null) { gyroscope = new Gyroscope(); gyroscope.TimeBetweenUpdates = TimeSpan.FromMilliseconds(20); gyroscope.CurrentValueChanged += new EventHandler >(gyroscope_CurrentV alueChanged); gyroscope.Start(); }... if (gyroscope != null) { gyroscope.Stop(); }

12 Windows Phone Cómo utilizar el giróscopo void gyroscope_CurrentValueChanged(object sender, SensorReadingEventArgs e) { //Procesar los datos leídos del sensor } Información recuperada: RotationRate Timestamp Velocidad rotacional alrededor de cada eje del dispositivo (en radianes/seg) Momento exacto de la lectura de datos

13 Demo Windows Phone 7.5 Giróscopo 13

14 Windows Phone 7.5 Magnetómetro

15 Windows Phone La brújula Determina el ángulo de rotación del dispositivo respecto al Polo Norte magnético de la Tierra. – Se pueden medir también las fuerzas magnéticas alrededor del dispositivo – Es necesario calibrarla con frecuencia – No todos los dispositivos están equipados con brújula Comprobar si existe el sensor antes de utilizarlo

16 Windows Phone Cómo utilizar la brújula if (compass == null) { compass = new Compass(); compass.TimeBetweenUpdates = TimeSpan.FromMilliseconds(1); compass.CurrentValueChanged += new EventHandler >(compass_Current ValueChanged); compass.Start(); }... if (compass != null) { compass.Stop(); }

17 Windows Phone Cómo utilizar la brújula void compass_CurrentValueChanged(object sender, SensorReadingEventArgs e) { //Procesar los datos leídos del sensor } Información recuperada: HeadingAccuracy MagneticHeading MagnetometerReading Timestamp TrueHeading Precisión (en grados) del rumbo Rumbo (en grados) en sentido horario respecto al Polo Norte Magnético Datos leídos del magnetómetro (en microteslas) Momento exacto de la lectura de datos Rumbo (en grados) en sentido horario desde el Norte geográfico

18 Demo Windows Phone 7.5 Giróscopo 18

19 Windows Phone 7.5 GPS y Bing Maps

20 Windows Phone Servicio de localización El servicio de localización en WP7 obtiene los datos de posicionamiento de: – GPS – WIFI – Radio GSM El sistema busca el equilibrio entre consumo de batería y rendimiento, en función de las necesidades de la aplicación Interfaz de código orientado a eventos administrados

21 Windows Phone Utilizar el servicio de localización 1. Agregar referencia: System.Device.dll 2. Directiva Using: using System.Device.Location 3. Añadir objeto GeoCoordinateWatcher public partial class MainPage : PhoneApplicationPage { GeoCoordinateWatcher watcher; }

22 Windows Phone Aplicación con localización opcional private void btnIniciar_Click(object sender, RoutedEventArgs e) { if (watcher == null) { watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High); watcher.MovementThreshold = 20; watcher.StatusChanged += new EventHandler (watcher_StatusChanged ); watcher.PositionChanged += new EventHandler >(watcher_Posi tionChanged); } watcher.Start(); } void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs e) { txtLatitud.Text = e.Position.Location.Latitude.ToString("0.000"); txtLongitud.Text = e.Position.Location.Longitude.ToString("0.000"); } private void btnPararServicioLocalizacion_Click(object sender, RoutedEventArgs e) { watcher.Stop(); } void watcher_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e) { switch (e.Status) { case GeoPositionStatus.Disabled: if (watcher.Permission == GeoPositionPermission.Denied) txtEstado.Text = Debe habilitar la localización else txtEstado.Text = Servicio no disponible."; break; case GeoPositionStatus.Initializing: btnIniciar.IsEnabled = false; break; case GeoPositionStatus.NoData: txtEstado.Text = Sin señal"; btnPararServicioLocalizacion.IsEnabled = true; break; case GeoPositionStatus.Ready: txtEstado.Text = Localización preparada"; btnPararServicioLocalizacion.IsEnabled = true; break; }

23 Windows Phone Control BingMaps 1.Crear una cuenta de desarrollador https://www.bingmapsportal.com/ 2.Creamos una nueva Key Nombre aplicación, URL, tipo de aplicación….. 3.Agregamos la referencia xmlns:map="clr-namespace:Microsoft.Phone.Controls. Maps;assembly=Microsoft.Phone.Controls.Maps 4.Insertamos el control

24 Windows Phone Control BingMaps Cambiar el tipo de vista: miMapa.Mode = new RoadMode(); miMapa.Mode = new AerialMode(); Cambiar el zoom: if (miMapa.ZoomLevel < 20) miMapa.ZoomLevel++; if (miMapa.ZoomLevel > 1) miMapa.ZoomLevel--; Añadir Pushpin: Pushpin pin = new Pushpin(); pin.Content = "Aquí"; pin.Background = new SolidColorBrush(Colors.Orange); pin.Location = coord; miMapa.SetView(coord, 14);//indico las coordenadas y el zoom miMapa.Children.Add(pin);

25 Demo Windows Phone 7.5 GPS y Bing Maps 25

26 Windows Phone 7.5 Motion API y Realidad Aumentada

27 Windows Phone Introducción a la realidad aumentada La realidad aumentada permite sobreponer información virtual en el mundo real

28 Windows Phone Introducción a la realidad aumentada Elementos de realidad aumentada – Etiquetas de texto emplazadas en puntos del espacio y que se desplazan al mover el dispositivo Edificios, tiendas, hoteles…

29 Windows Phone Introducción a la realidad aumentada Una aplicación de realidad aumentada necesita utilizar – Sensores (Motion API) – Cámara – Datos

30 Windows Phone Sensores Obtienen la orientación y movimiento del dispositivo – Brújula: rumbo respecto al Polo Norte POIs a mostrar en la pantalla – GPS: posición en coordenadas geográficas Lugares cercanos al dispositivo – Motion API: Combina los valores obtenidos de Brújula + Giroscopio + Acelerómetro

31 Demo Windows Phone 7.5 Realidad Aumentada 31

32 Q&A

33 GRACIAS Jose Antonio Gallego Eduardo Ortega


Descargar ppt "Capacidades avanzadas Jose Antonio Gallego Jefe de proyectos Eduardo Ortega MVP-Windows Phone."

Presentaciones similares


Anuncios Google