Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porSence Garza Modificado hace 11 años
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<SensorReadingEventArgs >(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 www.micmovilidad.es Jose Antonio Gallego http://geeks.ms/blogs/jagallego @lmovilero www.fiveflamesmobile.com Eduardo Ortega http://geeks.ms/blogs/eduardoortega www.mobilenug.com
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.