我正在尝试从用户的Android设备获取其速度,但哪种方法最可靠呢?
有一个 location.getSpeed()
函数使用GPS; 这是获取速度的可靠方法吗?或者我应该手动使用获取到的GPS坐标计算速度?或者还有其他我所不知道的方法可以实现这一点吗?
在安卓系统中,目前最好的方法是使用Location.getSpeed()
结合Google服务位置API和融合式位置提供程序。然后,使用Google Play服务活动识别来检查这个值是否真实可信。
DetectedActivity
类型为STILL
,则您的真实速度可能等于0。如果是ON_FOOT
,那么它可能是低速(例如1 m/s)。如果是ON_BICYCLE
或IN_VEHICLE
,则可以放心地依赖直接从Location.getSpeed()
获得的速度输出。您还需要检查DetectedActivity.getConfidence()
值,并设置您自己的置信水平阈值,以在依赖这些值时提供“有信心”的信号 :)。