为什么location.getSpeed()在android中使用网络提供程序时总是返回0?

为什么location.getSpeed()在android中使用网络提供程序时总是返回0?,android,locationmanager,locationlistener,Android,Locationmanager,Locationlistener,在GPS_提供程序中,使用location.getSpeed()可以正确工作并获取当前速度。但在网络提供商中,它总是显示速度为0。我只在设备而不是模拟器中进行测试。Gps提供程序在5-15米范围内提供定位精度,所以当您调用方法location.getSpeed()时,它会给出正确的位置,而网络提供程序不会给出准确的位置,所以当您调用location.getSpeed()时,它会给出100米范围内的位置那么它就不知道你在100米之间的准确位置。参考这里: 请注意,速度只能通过GPS_提供商计算。网

在GPS_提供程序中,使用location.getSpeed()可以正确工作并获取当前速度。但在网络提供商中,它总是显示速度为0。我只在设备而不是模拟器中进行测试。

Gps提供程序在5-15米范围内提供定位精度,所以当您调用方法location.getSpeed()时,它会给出正确的位置,而网络提供程序不会给出准确的位置,所以当您调用location.getSpeed()时,它会给出100米范围内的位置那么它就不知道你在100米之间的准确位置。

参考这里:

请注意,速度只能通过GPS_提供商计算。网络提供商数据取决于一些参数,如载波网络、塔台、信号强度等。。因此,这不是确定速度的正确方法。此外,由于它基于静态塔架,因此它将在更长距离内返回相同的lat long


与GPS提供商相比,网络提供商的lat long精度非常低,不足以计算速度

网络提供商根据您的网络提供您的位置,如果您在移动网络上,您连接到哪个基站;如果您使用wifi,您连接到哪个路由器。因此,如果网络提供商的基站或路由器位置不变,则在网络提供商hasSpeed()中返回0

,因此,您的位置。getSpeed()=0。
您只能将getspeed()用于GPS_PROVIDER。

我已经使用了它,它工作正常,但现在只有它始终显示0,因为它的速度是在您的纬度和经度坐标发生变化时计算出来的,但在网络提供商中,它保持不变。您将从同一个塔楼获得的纬度和经度,因此它不会给出准确的纬度、经度,精度和障碍因此速度取决于这个因素。只有精度至少超过10米(不是100%确定这个值)时,才会得到getSpeed()值。lalready我已经使用了它,它工作正常,但现在只有它始终显示0完全正确的答案。我想知道直到现在还没有人对这件事投赞成票!!!我投票赞成这个