我的代码可以成功地从多个提供商那里获取位置更新并过滤它们以给出当前的最佳估计。
我添加了代码来检查返回的 Location.hasSpeed() 和 .hasBearing() 值,以便在用户实际移动时进行一些与方位相关的计算。
在运行 2.3.3 的华为 Sonic 上一切正常,但在运行 4.0.4 的 Google Nexus S 上,GPS 提供商的位置总是为 .hasSpeed() 返回 false,为 .getSpeed() 返回 0。
当我注册我的位置侦听器时,GPS 提供程序为 .supportsSpeed() 返回 true 但它永远不会返回位置中的速度,即使精度下降到 30m 并且它正在物理移动(在汽车中,在仪表板上以获得最大接收,屏幕开启)。
从 2.3.x 到 ICS 4.x 有什么区别吗?即使提供商报告支持,我是否必须实施自己的速度计算?