Como obter velocidade no aplicativo android usando localização ou acelerômetro ou algum outro caminho

Estou trabalhando no aplicativo e tento obter a velocidade e a distância percorrida pelo usuário. Eu usei a classe de localização dos serviços do Google Play para obter a velocidade, mas ela sempre me retorna o valor 0,0 e não é confiável. Eu preciso de velocidade e distância exata viajadas em tempo real.

Eu instalei o aplicativo GPS Speedometer no meu dispositivo e é tão perfeito que, mesmo que eu esteja andando, isso me dá a velocidade. Eu quero pegar a mesma coisa. Estou confuso em como obter velocidade, usando localização ou usando acelerômetro ou há alguma outra maneira de fazê-lo?

Meu código está disponível neste link: -

Rota de desenho no Google Maps usando a API do Google Maps para Android v2

Estou desenvolvendo aplicativo baseado em localização pura que inclui mapa, velocidade e outras coisas relacionadas que estão relacionadas aos locais.

Se alguém tiver alguma ideia, por favor, ajude-me a resolver o problema de Velocidade e Distância.

questionAnswers(4)

yourAnswerToTheQuestion