Google Chrome Mobile中的移动浏览器上的全分辨率加速度计/传感器数据

问题描述

移动Chrome浏览器中似乎存在与设备移动相关的错误(或非常无用的功能)。当使用Google chrome mobile中的javascript从设备传感器(例如,加速度计)在移动浏览器中检索数据时,数据会四舍五入到只有大约两个有效数字,尽管原始设备数据要精确得多,但几乎不能用于许多用途比这个。不知道为什么。我认为浏览器必须四舍五入,也许是出于安全考虑?在移动safari或Samsung移动互联网浏览器上,相同的代码不会产生此行为。

如何获取全分辨率传感器数据?

产生舍入数据的示例代码

window.addEventListener("devicemotion",handleMotionEvent,true);
handleMotionEvent: function(event) {
result = event.acceleration.x;
// do something with result.  Result datapoints will be,eg: 3.200000004,3.4000000....
}

使用这样的api元素会产生相同的行为:

accelerometer = new Accelerometer({ referenceFrame: 'device' });

谢谢

解决方法

"Quantize sensor values to protect user privacy"中,故意降低了传感器数据的暴露精度。

这是“按预期方式工作”,除非确定了除尝试识别用户以外受到影响的用例。已为此主题提交了chromium issue,是在需要时提出用例的好地方。