El acelerómetro le da tres direcciones (x, y, z). Son mediciones de aceleración que es más difícil saber cuál es la posición del dispositivo. Pero, recuerde aceleración está relacionada con la posición a través de la integración:
a(t) = a[x]
v(t) = a[x]t + c
x(t) = a[x]t^2 + ct + d
El problema es que no se puede saber cod, porque a medida que se toma la derivada de las constantes abandonan. Entonces, hay una cantidad que no se puede corregir con la falta de C y D. Puedes intentar compensar recordando los valores que usaste por última vez. Entonces, después de tomar 3 muestras, puedes comenzar a calcular la posición a partir de eso.
Existe una gran cantidad de información sobre cómo interpretar los datos de los sensores. Como averiguar dónde está la gravedad para la orientación y restar la gravedad para obtener aceleración lineal.
http://developer.android.com/reference/android/hardware/SensorEvent.html
Aquí es una manera de llegar a su posición mediante un acelerómetro junto con un algoritmo para encontrar la posición en detalle:
http://www.freescale.com/files/sensors/doc/app_note/AN3397.pdf
Deberá sondear el valor de 'a' y calcular la aceleración promedio, y aplicar ese promedio durante el período de tiempo entre las urnas. – Bringer128
Es muy curioso cómo lograste resolver esto, y si lo conseguiste para que sea preciso permitir una navegación precisa. – ina