En teoría, se podría hacer esto; en la práctica, no.
Debería suponer que conoce una velocidad inicial, pero suponiendo que comience a 0 velocidad no es una suposición tan mala.
También debería conocer la orientación real del dispositivo durante todo el período. De lo contrario, no puede diferenciar el cambio en la aceleración debido a la aceleración real en lugar de simplemente girar el dispositivo.
(Recuerde que tiene que sacar la aceleración debida a la gravedad de las lecturas!)
Por último, los errores sumarían más de algún tiempo, no sólo porque la medida de la aceleración es imperfecta, pero ya que sólo obtener muestras discretas a lo largo del tiempo
Aparte de todas esas cosas, claro, funciona! La API te dice en qué unidades están las lecturas (m/s^2). Puede solicitar al sensor actualizaciones muy rápidas. Creo que sería interesante ver qué tan preciso es escribir una aplicación que hace esto y luego poner el teléfono plano y luego caminar hacia adelante y detenerse con él. ¿Qué tan cerca de 0 es la lectura, entonces?
Es incluso más interesante (y divertido) dejar el dispositivo en la mesa durante medio minuto, restar la gravedad e integrar lo que queda dos veces para cambiar la posición. La estimación será que el dispositivo se movió unos cientos de metros. –
Hah OK, entonces es mucho peor de lo que pensaba ... –
Intenté hacerlo. Agregué un filtro de paso bajo a la velocidad para evitar derivar ... en ese caso no tengo movimiento significativo con un dispositivo fijo. Pero moviéndolo, incluso un movimiento de pocos centímetros da resultados que parecen aleatorios. La velocidad del terminal a menudo es muy diferente de 0. – ARLabs