¿Cómo detectar el evento shake con android cordova?

Estoy tratando de detectar agitación evento utilizando Cordova 2.2.0 para dispositivos Android. He encontrado alguna pregunta relacionada con este tema, pero t en código nativo, por ejemplo, esta pregunta y esta pregunta .

¿Alguien sabe cómo detectar este evento usando phonegap Córdoba? O debería escribir un complemento?

Puedes probar shake.js . He estado buscando en él, pero no lo ha implementado. Parece prometedor.

Utilice el acelerómetro para almacenar los valores anteriores (x, yyz). Si se definen los umbrales (x, y, z), se puede detectar el temblor si la diferencia entre los valores previosValues ​​y la real una vez (event.value [i] donde i = x, y ans z) es superior a los umbrales.

También puede utilizar la magnitud de los valores de aceleración (Acc = sqrt (x * x + y * y + z * z)) o la marca de tiempo para obtener mejores resultados.

Cordova ofrece el complemento device-motion, que (sorprendentemente) expone un objeto navigator.accelerometer , en lugar de alinearse con el estándar de orientación / devicemotion del dispositivo W3C publicado desde 2011.

Cuando el dispositivo queda plano sobre una superficie, la aceleración (x, y, z) será (0, 0, 9.81). La idea básica para detectar una sacudida es observar la aceleración con una frecuencia dada, calcular el delta de la muestra anterior y decidir si es mayor que un umbral.

 navigator.accelerometer.watchAcceleration(onSuccess, onError, { frequency: 300 }); // Assess the current acceleration parameters to determine a shake function onSuccess(acceleration) { var accelerationChange = {}; if (previousAcceleration.x !== null) { accelerationChange.x = Math.abs(previousAcceleration.x - acceleration.x); accelerationChange.y = Math.abs(previousAcceleration.y - acceleration.y); accelerationChange.z = Math.abs(previousAcceleration.z - acceleration.z); } previousAcceleration = { x: acceleration.x, y: acceleration.y, z: acceleration.z }; if (accelerationChange.x + accelerationChange.y + accelerationChange.z > sensitivity) { // Shake detected, invoke callback } } 
  • Experiencia de PhoneGap
  • Problema de PhoneGap 2.5.0
  • La aplicación androide Cordova 5.0.0 no puede conectarse a Internet con Android 4.0.0
  • Uso de SurfaceView en Cordova plugin
  • Crosswalk error en android construir en Córdoba proyecto
  • No se puede editar la entrada type = "text" o textarea con Cordova 1.9.0 y Android Jelly Bean
  • Error en activity.java para phonegap
  • Cordova Angular Obtener acceso a la Web Api Connection Refused
  • ¿Cómo comprobar cordova android versión de un proyecto cordova / phonegap?
  • Aplicación phonegap con integración Smart Card
  • Múltiples instancias de webview destacadas vistas en dispositivos cromados al abrir y cerrar la aplicación android de Córdoba
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.