РЕДАКТИРОВАТЬ: Я не думаю, что это достаточно точно, так как при обычной ходьбе среднее ускорение было бы около 0. Максимум, что вы могли бы сделать, измеряя ускорение, это обнаружить, когда кто-то начинает ходить или останавливается (Но, как вы сказали, трудно фильтровать это от устройства, перемещенного кем-то, стоящим в одном месте)
Итак ... то, что я написал ранее, вероятно, в любом случае не сработает:
Вы можете "предсказать", движется ли пользователь, отбрасывая, когда пользователь не движется (очевидно), и первые два варианта, которые мне приходят на ум:
Проверьте, не скрыт ли телефон, используя датчик приближения и освещенности (опция). Этот метод менее точен, но проще.
Контролируя непрерывность движения, если телефон движется более ... 10 секунд и движение не является подлым, то вы считаете, что он ходит. Я знаю, что это не идеально, но это трудно без использования какого-либо позиционирования, кстати ... почему бы вам просто не использовать LocationManager
?