我正在使用新GooglePlay API(LocationClient类)中的融合位置提供程序。但是方法Location.GetSpeed()没有返回正确的速度(显示0)。我读到我必须使用LocationManager类来获得速度,但是当我尝试使用LocationManager时出现了一个新问题。位置管理器NetworkProvider无法正常工作,这是一个问题为http://code.google.com/p/android/issues/detail?id=57707的线程。 那么什么是获得运动速度的最佳方法。我试过计算它的距离/时间,但它不准确..
答案 0 :(得分:3)
唯一提供速度的传感器是GPS Wlan和GSm cell Tower定位无法提供速度。
如果您需要速度,则必须确保使用GPS作为位置提供商使用exlusivley。 您不能将NetworkProvider用于该任务。
如果速度是一项重要要求,其优先级高于电池消耗,则只能使用GPS提供商。你必须避免融合的位置提供者。
在没有GPS的情况下,技术上不可能有速度。
答案 1 :(得分:2)
我在使用Google Play Location API时遇到此问题, 我希望这可以提供帮助。
它返回0,因为您的设备无法锁定GPS,或无法连接到GPS。
我尝试使用较旧的lenovo设备获得速度,并且它返回0,因为它无法锁定gps。
我尝试使用三星Galaxy nexus并且它恢复了我的速度(有更好的GPS传感器)。
手机中的GPS传感器可能不太好,或者您所在的GPS信号较弱的区域(如房屋或建筑物内)。
如果你没有连接到gps,即使你使用locationManager来获得速度,你的getSpeed仍会返回0.