【问题标题】:Any way to access magnetometer input in chrome for android?有什么方法可以访问 chrome for android 中的磁力计输入吗?
【发布时间】:2014-08-22 16:40:12
【问题描述】:

我正在尝试启动一个使用 Google Cardboard 的 WebGL 项目。由于您的手机在纸板中的唯一输入是一侧的磁性开关,它与手机的内部磁力计交互,我很好奇是否有办法访问磁力计状态浏览器中的数据。

【问题讨论】:

    标签: javascript android magnetometer


    【解决方案1】:

    来自DeviceOrientation Event Specification 的DOM 事件deviceorientation 为您提供calculate compass heading 所需的信息。

    Android Chrome 浏览器支持该规范(根据 mobilehtml5.org)。

    HTML 5 不知道该信息是否真正来自内部磁力计或其他一些设备技巧,但我想这对于您的问题范围来说很好。

    【讨论】:

    • 如果这是唯一的解决方案,它对我不起作用。该设备的方向已用于谷歌纸板耳机中的头部倾斜控制。唯一暴露给用户的物理控件来自一端的磁铁,当它移动时,只会影响磁力计。 deviceorientation 似乎同时使用加速度计和磁力计数据来计算它的值。我需要一种方法来仅隔离磁力计数据。
    • 很抱歉听到这个消息。我不确定,如果我理解“隔离磁力计数据”的意思。指南针航向的来源对您来说真的很重要,还是您对获得的精度不满意?您是否尝试过附录(A.1 计算罗盘航向)中给出的 JavaScript 示例来计算罗盘航向?它奏效了吗?你对结果有什么问题?我的意思是,同一个事件为您提供“头部倾斜控制”并不会破坏它的航向计算,是吗?
    • 我想他想确定用户是否点击了谷歌纸板上的磁性开关。我也在努力解决这个问题。
    • 啊,感谢您的澄清。恐怕,DeviceOrientation Event Specification 不会帮助您,因为它不会返回磁场强度,即seems to be relevant。您可能想在问题中(或在新问题中)提及磁性开关,以便得到适当的关注:-)
    • 我使用 W3C 示例代码和 Google Pixel 2 对此进行了测试,但它没有返回可靠的方向。它没有从磁力计中获取信息,我通过注意到当强大的磁铁在手机附近移动时它没有改变来验证这一点。此外,当您重新加载网页时,North 的想法会发生变化。该方向报告为“相对”而不是“绝对”。我测试了 Chrome、Firefox 和 Opera,得到了相同的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多