如何在android中校准方向传感器?

时间:2010-07-04 09:48:49

标签: java android android-sensors

我正在Google Android 2.1中编写一个应用程序,需要知道设备(HTC Hero)面向哪个方向(n / w / s / e)。传感器及其听众工作得很好,但我从传感器获得的值非常糟糕。例如它告诉我,当设备面向SW时,我将面向北方......

这似乎是Android设备的已知问题。我在网上找到的“解决方案”如下所示:

  • 摇动设备
  • 像八个人一样移动设备
  • 点击设备

这被认为会触发传感器重新校准。并且:“四处走动”的东西对我有用......但我觉得这不是很专业......

那么 - 如何从SDK触发方向传感器的重新校准?我需要对传感器进行适当的校准,没有任何花哨的东西会使这个应用程序的用户看起来像完全白痴,而他们“手动”重新校准他们的手机......

有没有办法做到这一点“正确”?

编辑:

或者:有没有办法确定PROGRAMMATICY,如果设备是否正确校准?作为后备选项可以说......然后我可以警告用户该设备需要“手动”重新校准。

2 个答案:

答案 0 :(得分:3)

如果您正确校准罗盘传感器,除非您使用GPS之类的辅助数据源,否则我认为没有办法以编程方式知道。如果您可以使用GPS,那么当用户移动时,您可以将GPS运动与罗盘方向进行比较并更正。请记住,局部磁场可能会弄乱指南针读数,设备无法知道您是在森林中间​​还是在变压器旁边。

使用这些微型设备,您将不得不处理一些偏差。如果您同时检查加速度计的值,您会发现它们在静止时并不总是返回9.8 m / s ^ 2(或至少在设备之间保持一致)。

在您的帮助中,您可能只需告诉用户旋转/扭动手机,以重置指南针。

答案 1 :(得分:0)