El Sensor acelerómetro
El dispositivo móvil permite supervisar el sensor del acelerómetro , que indica la aceleración del dispositivo en un espacio tridimensional.
Lecturas del sensor
Las lecturas del acelerómetro se notifican en G. La G es una unidad de fuerza gravitacional igual a la ejercida por el campo gravitatorio de la Tierra (9,81 m/s^2).
Las lecturas del acelerómetro se notifican en G. La G es una unidad de fuerza gravitacional igual a la ejercida por el campo gravitatorio de la Tierra (9,81 m/s^2).
El eje X es horizontal y apunta a la derecha, el eje Y es vertical y apunta hacia arriba, y el eje Z apunta hacia el exterior de la parte frontal de la pantalla. En este sistema, las coordenadas de detrás de la pantalla tienen valores de Z negativo.
Ejemplos:
- Cuando el dispositivo se encuentra plano sobre una mesa y se mueve desde el lado izquierdo hacia la derecha, el valor de aceleración de X es positivo.
- Cuando el dispositivo se encuentra plano sobre una mesa, el valor de aceleración es + 1,00 G o (+ 9,81 m/s^2), que corresponden a la aceleración del dispositivo (0 m/s^2) menos la fuerza de la gravedad (- 9,81 m/s^2) y normalizada en G.
- Cuando el dispositivo se encuentra plano sobre una mesa y se mueve hacia el cielo con una aceleración de A m/s^2, el valor de la aceleración es igual A + 9,81, que corresponde a la aceleración del dispositivo (+ A m/s^2) menos la fuerza de la gravedad (- 9,81 m/s^2) y normalizada en G.
Empezamos Con nuestra aplicación.
Creamos un nuevo proyecto vamos a Archivo -> Nuevo Proyecto -> Cross-Platform y le damos un nombre.
Y seleccionamos las plataformas que vamos a implementar nuestra app.
Añadimos los Nuget, abrimos Explorador de soluciones -> botón derecho sobre el proyecto -> administrar paquetes Nuget, Instalamos dos paquetes.
- Xamarin.Essentials
Agregue una referencia a Xamarin.Essentials en cualquier clase de C# para hacer referencia en cualquier clase.
- using Xamarin.Essentials;
A continuación, modificamos la clase del proyecto de androit MainActy.cs
Os dejo el código.
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
Nos dará algunos errores.
Para solucionarlo actualizamos todos los NuGet a la ultima actualización.
Nos iremos a MainPage.xaml, en el explorador de soluciones de la derecha.
Modificaremos el código de esta forma con un AbsoluteLayuot y un label.
Y nos aparecerá de la siguiente manera.
Crearemos el código en la página de MainPage.xaml.cs.
- Hacemos el using Xamarin.Essentials;
- Creamos un constructor para inicializar nuestros métodos.
- Método para detectar las sacudidas.
- Método para leer los datos del sensor
- Parte 1.
- Parte 2.
- Parte 3.
Compilar y Ejecutar en un Móvil, por el sensor este sería el resultado.
Y eso sería todo amigos. Ánimo y no desesperéis.
Un saludo y muchas gracias.
Autor/a: Rubén Blázquez Camacho.
Curso: Microsoft MCSA Web Applications + Microsoft MCSD App Builder + Xamarin.
Centro: Tajamar.
Año académico: 2018-2019
Enlace a GitHub: Aplicación de Xamarin