Отказ от ответственности: я не знаю каких-либо особенностей Android, скорее всего, это также специфично для телефона.Я просто говорю из физики.
Вам нужно будет интегрировать ускорение в скорость и интегрировать скорость в смещение (положение).
Вы будете страдать от интеграционного дрейфа.Каждый раз, когда вы интегрируете, будет введена константа интеграции.Множественные интегрирования усугубляют эту ошибку.
Вам также нужно беспокоиться об угловом ускорении.то есть.Что происходит, когда телефон поворачивается, но остается в том же физическом положении?
Существуют способы помочь уменьшить эти источники ошибок.
Если имеется несколько акселерометров, вы можете сравнить их, чтобыпопытаться определить любые угловые компоненты.
Если есть гироскопы, вы можете использовать гироскопы, чтобы помочь отменить угловые компоненты.
Если компас достаточно точен, вы можете попытаться отменить хотя бы компоненты в горизонтальной плоскости.
GPS можно использовать для устранения ошибок интеграции смещения.Когда GPS говорит, что вы остановились, обнулите константы интеграции.
Вам нужно будет начать смотреть на алгоритмы численного интегрирования и фильтрации.Без аппаратного ускорения это может быть в вычислительном отношении дорогостоящим.
В какой момент вы действительно должны начать задавать себе вопрос, действительно ли вашей проблеме нужны точные измерения смещения?Достаточно ли смещения GPS?Можете ли вы достичь того же результата только с ускорением?
Вы должны попробовать прочитать:
http://en.wikipedia.org/wiki/Inertial_navigation_system