Android磁传感器为不同设备提供不同的值

时间:2011-12-06 14:51:49

标签: android sensor android-sensors

我正在尝试进行分析,其中包括解释Android设备的各种传感器的结果。现在我正在分析magnetic field sensor,它应该告诉我(根据this documentation page)uT(微特斯拉)中环境磁场的值。到目前为止一切都很清楚,但在我测试的2个设备上(Galaxy S,Galaxy Gio),结果是不同的。不同的意思是非常不同。

例如,在桌子上具有相同的方向,这些设备显示的只是一个例子:

S2:  -2,12, 60 (approximate values on x,y,z accordingly)
Gio: -2,12,-36 (approximate values on x,y,z accordingly)

即使我切换位置,结果也是一样的。我还在this page上读到了关于磁场强度的信息,我认为考虑到我的地理纬度,我应该有大约50uT。

有人可以解释这些传感器的含义吗?

有人知道如何解释这种行为吗?

谢谢,

尤利安

2 个答案:

答案 0 :(得分:3)

我可以确认问题。

作为steady compass应用程序的作者,我已经对不同设备的磁场传感器进行了多次测试。我发现其中一台设备报告的mf绝对值约为其他不同设备在相同条件下报告的数量的2倍。

我在电话校准后做了很多测试,我甚至将设备置于“飞行模式”,试图最大限度地减少来自自身设备的电磁干扰。另一个评论是,在某些设备上插入USB电缆会产生重要的磁场变化。

我在给定设备上看到的最糟糕的结果(在校准,飞行模式和USB断开后)是这样的:在水平面上使用指南针应用设备,我读取一个读数,在水平方向旋转90度飞机并采取新的指南针阅读。两个读数的差异超过15度!

幸运的是,并非所有设备都包含如此糟糕的传感器。旋转90度后,最佳设备的误差约为2-3度。

结论:除非您对磁场传感器非常有信心,因为您已经测试并证明了良好的行为,否则您应该对这种传感器报告的读数提供有限的可靠性。

答案 1 :(得分:2)

我也遇到过传感器的这些问题。我相信手机会根据制造商使用的硬件给出不同的传感器读数。 尝试读取SENSOR_STATUS_UNRELIABLE的传感器精度。您可能需要重新校准磁力计。