我正在Google Android 2.1中编写一个应用程序,需要知道设备(HTC Hero)面向哪个方向(n / w / s / e)。传感器及其听众工作得很好,但我从传感器获得的值非常糟糕。例如它告诉我,当设备面向SW时,我将面向北方......
这似乎是Android设备的已知问题。我在网上找到的“解决方案”如下所示:
这被认为会触发传感器重新校准。并且:“四处走动”的东西对我有用......但我觉得这不是很专业......
那么 - 如何从SDK触发方向传感器的重新校准?我需要对传感器进行适当的校准,没有任何花哨的东西会使这个应用程序的用户看起来像完全白痴,而他们“手动”重新校准他们的手机......
有没有办法做到这一点“正确”?
编辑:
或者:有没有办法确定PROGRAMMATICY,如果设备是否正确校准?作为后备选项可以说......然后我可以警告用户该设备需要“手动”重新校准。
答案 0 :(得分:3)
如果您正确校准罗盘传感器,除非您使用GPS之类的辅助数据源,否则我认为没有办法以编程方式知道。如果您可以使用GPS,那么当用户移动时,您可以将GPS运动与罗盘方向进行比较并更正。请记住,局部磁场可能会弄乱指南针读数,设备无法知道您是在森林中间还是在变压器旁边。
使用这些微型设备,您将不得不处理一些偏差。如果您同时检查加速度计的值,您会发现它们在静止时并不总是返回9.8 m / s ^ 2(或至少在设备之间保持一致)。
在您的帮助中,您可能只需告诉用户旋转/扭动手机,以重置指南针。
答案 1 :(得分:0)