解决方案 :
可能性 1:
MAGNETIC_FIELD 关于旋转非常不稳定,您无法仅通过一些数学来转换横向和纵向值,主要原因是硬件对不同的轴使用不同的捕捉器,然后当旋转发生时,您使用不同的硬件捕捉器,值将永远不会相同,在某些高端设备上它是相同的,但在大多数设备上不同。
如果您想在许多设备上依赖和兼容某些东西,您需要忘记计算带有旋转的 MAGNETIC_FIELD,而只需使用您的应用程序强制定向。强制“纵向”定向模式
可能性 2:
你谈到"magnetic fingerprint" of a location.
如果它只是关于在没有 GPS 的情况下识别一个位置,你还有很多其他信息可以使用。首先是“Wifi SSID”,然后是“Mobile Networks Cells”,还有“Connected Wifi”等。如果您对此感兴趣,我可以为您提供代码。
可能性 3:
如果您绝对需要为您的位置计算 MAGNETIC_FIELD,并且不想强制旋转……您可以同时捕获值横向和纵向,而不是计算它们。然后,当您比较时,只需比较两个值。
此外,如果您正在寻找有磁铁或高磁性位置的地方,您可以使用高容差百分比来检测是否存在磁铁,
笔记 :
如果您坚持使用数学,请不要忘记几乎每台设备上的功能都会有所不同……请随时提供有关您问题的更多信息,我会很高兴调整我的答案;)