gpt4 book ai didi

android - 如何获取Android设备用户移动的速度? Location.getSpeed 可靠吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:01:04 51 4
gpt4 key购买 nike

我正在尝试从用户的 Android 设备获取用户的速度,但哪种方法最可靠?

有使用 GPS 的 location.getSpeed() 函数;这是获得速度的可靠方法吗?我应该改为使用获得的 GPS 坐标手动计算速度吗?还是我缺少另一种方法来完成此任务?

最佳答案

IMO,Android 上当前最好的方法是使用 Location.getSpeed()Google Services Location API和融合的位置提供者。然后,根据 Google Play Services Activity Recognition 实际检查此值.

融合位置提供程序集成了一些其他机载传感器来调整位置数据,这比单独使用 GPS 更好。然后,检查 ActivityRecognition.getMostProbableActivity()方法。如果DetectedActivitySTILL 类型,您的真实速度可能等于 0。如果它是 ON_FOOT,则可能是低速(例如 1 m/s)。如果是 ON_BICYCLEIN_VEHICLE,您可能完全依赖直接从 Location.getSpeed() 获得的速度输出。您还需要检查 DetectedActivity.getConfidence()值,并设置您自己的置信度阈值,当您依赖这些值时,您可以用 :) 提供“自信”。

我还明确建议您不要简单地平均连续位置以获得两个位置之间的平均速度(如果您这样做,它需要是大量位置的平均值).在我的移动设备基准测试中(请参阅我的论文 here,尤其是第 105-106 页和第 137-138 页),我发现由 GPS 子系统(通常基于 Doppler shift of GPS carrier signals)计算的瞬时速度为比从 GPS 获得的位置准确得多。在我测试的 Sanyo Pro 200 上,在室内静止时观察到的速度的第 95 个百分位(仅使用辅助 GPS,没有传感器融合)是 1 m/s。在我评估的一些智能能源管理技术中,我能够使用速度数据(参见第 137-138 页)过滤掉大量位置异常值。通过传感器融合和 Activity 识别来帮助过滤异常值,在类似设备上的准确性应该比这更好。

最后,我怎么强调都不为过,您是否在真实设备上进行了测试,尽可能多地进行测试,最好是最流行的型号。 Android 有各种 OEM 推出的设备,它们都有自己的怪癖。最好的办法是创建一个针对最流行模型的解决方案,承认让一个解决方案在所有模型上都能完美运行是不现实的。

关于android - 如何获取Android设备用户移动的速度? Location.getSpeed 可靠吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21644990/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com