4

我正在使用来自新的 GooglePlay API(LocationClient 类)的融合位置提供程序。但是方法 Location.GetSpeed() 没有返回正确的速度(显示 0)。我读到我必须使用 LocationManager 类来获得速度,但是当我尝试 LocationManager 时,出现了一个新问题。位置管理器 NetworkProvider 不工作,这是一个有问题的线程http://code.google.com/p/android/issues/detail?id=57707。那么获得运动速度的最佳方法是什么。我尝试计算它的距离/时间,但它不准确..

4

2 回答 2

3

唯一能提供速度的传感器是 GPS。
Wlan 和 GSm 基站定位无法提供速度。

如果您需要速度,则必须确保将 GPS 专门用作位置提供程序。您不能将 NetworkProvider 用于该任务。

如果速度是一个重要要求,它比电池消耗具有更高的优先级,则您必须仅使用 GPS Provider。您必须避免使用融合的位置提供程序。

从技术上讲,没有 GPS 就不可能有速度。

于 2013-11-08T13:25:51.487 回答
2

I also encountered this problem when I was using Google Play Location API, I hope this can help.

It returns 0 because your device cannot get a lock on the GPS, or cannot connect to the GPS.

I tried to get the speed using an older lenovo device and it returns 0 because it cannot lock on a gps.

I tried using a samsung galaxy nexus and it returned my speed(has a better GPS sensor).

The GPS sensor in your phone might not be good or you are in an area that has a weak GPS signal such as inside a house or building.

Even if you use the locationManager to get the speed if you are not connected to the gps, your getSpeed will still return 0.

于 2014-09-18T02:23:14.730 回答