miércoles, 21 de mayo de 2014

Plugin Acelerómetro

Este plugin da acceso al acelerómetro del dispositivo. El acelorómetro es un sensor de movimiento que detecta cualquier cambio relativo a la orientación del dispositivo, en las tres dimensiones del eje (x, y & z).

Instalación

cordova plugin add org.apache.cordova.device-motion

Plataformas soportadas

  • Amazon Fire OS
  • Android
  • BlackBerry 10
  • iOS
  • Tizen
  • Windows Phone 7 y 8
  • Windows 8

Métodos 

  • navigator.accelerometer.getCurrentAcceleration
  • navigator.accelerometer.watchAcceleration
  • navigator.accelerometer.clearWatch

Objetos

  • Acceleration
A pesar los ejemplos que vienen en la documentación oficial he tenido problemas a la hora de implementar una aplicación que te mostrara por pantalla el valor de los ejes en tiempo real. Lo que pasaba es que no se advierte del uso del manejador de eventos para deviceready. Este manejador carga todas las librerías de las APIs y es una manera de asegurarse que al estar cargadas van a funcionar las llamadas a los plugins instalados.

Me he dado cuenta de ello al comprobar los mismos ejemplos en la documentación de Phonegap que en sus ejemplos resueltos lo incorporaban al código. Al hacer lo mismo en mi código la aplicación funcionó sin ningún error.

Si se quiere capturar los valores de los ejes en tiempo real lo idóneo sería utilizar el método watchAcceleration ya que en su último parámetro podemos especificarle la frecuencia con que se va a ir refrescando expresada en milisegundos:

navigator.accelerometer.watchAcceleration(accelerometerSuccess,
    accelerometerError,
    [accelerometerOptions]); 

Y es en accelerometerOptions donde le pasamos el parámetro frequency para especificar el tiempo de refresco de los valores de los ejes. Siempre en milisegundos, es decir 1000 ms será 1 s.

Otro dato interesante, y es que los valores de los ejes se basan en los efectos de la gravedad
(9,81 m/s2) lo que si tenemos nuestro dispositivo sobre una superfice plana y con la pantalla defrente los valores que lanzaría el acelerómetro serían: x=0, y=0, z=9.81.

No hay comentarios:

Publicar un comentario