1

我正在尝试创建一个程序来检测设备何时在汽车内移动。为此,我注册了一个 LocationListener 并在返回的位置上使用 hasSpeed 和 getSpeed。

然而,当我在室内就在窗边时,有时我会看到整个地方的速度……每秒1、2、4,甚至15米。当我重新加载应用程序时,模式似乎发生了变化(有时根本没有修复,所以它什么也没说......等等)

我已经使用谷歌地图测试了 GPS。我看到的是,即使我没有移动,我的位置确实会反弹几米。不用说,这很糟糕:)

我的刷新每 10 秒发生一次。不幸的是,我想要检测的阈值速度低于我从操作系统获得的“虚假”速度,所以我正在寻找另一种方法(除了速度本身)来衡量操作系统是否正在向我提供垃圾数据。

4

2 回答 2

0

当您在家时,GPS 是如何工作的?如果它可以击中一些卫星,您可能会获得不错的数据,如果没有,您正在检测与 wifi 热点相关的接近度,这是非常有问题的。您可能需要构建一些逻辑来检测与在汽车中一致的运动一致性。

这是一个更详细的答案。

于 2013-05-11T07:23:44.137 回答
0

您可以使用传感器 TYPE_LINEAR_ACCELERATION,如果它不可用,请使用带有低通滤波器的 TYPE_ACCELEROMETER 来过滤掉重力并获得设备加速度。您可以单独使用它们,也可以与 Location 结合使用。更多信息请访问http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ACCELEROMETER

于 2013-05-11T08:24:00.623 回答