我正在使用来自新的 GooglePlay API(LocationClient 类)的融合位置提供程序。但是方法 Location.GetSpeed() 没有返回正确的速度(显示 0)。我读到我必须使用 LocationManager 类来获得速度,但是当我尝试 LocationManager 时,出现了一个新问题。位置管理器 NetworkProvider 不工作,这是一个有问题的线程http://code.google.com/p/android/issues/detail?id=57707。那么获得运动速度的最佳方法是什么。我尝试计算它的距离/时间,但它不准确..
2 回答
唯一能提供速度的传感器是 GPS。
Wlan 和 GSm 基站定位无法提供速度。
如果您需要速度,则必须确保将 GPS 专门用作位置提供程序。您不能将 NetworkProvider 用于该任务。
如果速度是一个重要要求,它比电池消耗具有更高的优先级,则您必须仅使用 GPS Provider。您必须避免使用融合的位置提供程序。
从技术上讲,没有 GPS 就不可能有速度。
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.