Метод getSpeed () так же точен, как и местоположения, предоставленные GPS. В зависимости от того, где вы находитесь, это может быть +/- скорость ходьбы в любом направлении. Лучшим способом было бы вычислить скорость в большем направлении, если вы можете заставить это работать. Получите и сохраните одно местоположение, затем наблюдайте позиции, пока расстояние между сохраненным местоположением и текущим не будет составлять несколько сотен метров, а затем используйте расстояние / разницу времени для вычисления скорости.
Я не могу себе представить, что интегрирование акселерометра в течение длительного периода времени (что вам нужно будет сделать, чтобы вычислить скорость) было бы очень точным, но, возможно, стоит попробовать.