【问题标题】:Android GAME_ROTATION_VECTOR backportAndroid GAME_ROTATION_VECTOR 反向移植
【发布时间】:2013-09-19 05:02:27
【问题描述】:

有谁知道是否可以将 GAME_ROTATION_VECTOR 反向移植到 Android 4.x?

谢谢

【问题讨论】:

    标签: android android-sensors android-4.3-jelly-bean


    【解决方案1】:

    您可以根据加速度计和陀螺仪数据重新实现一个。但这并不简单。您可以搜索“orientation kalman filter”,看看是否有适用于 Android 的实现。如果您发现一个效果很好,请告诉我们!

    【讨论】:

      【解决方案2】:

      没有可以轻松向后移植的现有平台代码,因为这些传感器值的计算是在本机层完成的(here's JNI 代码,here's 接收传感器的传感器管理器的 Java 实现来自本机代码的事件更新)。

      因此,根据您的用例,您最好的选择可能是在 Android 4.X 上使用TYPE_ROTATION_VECTOR 传感器,因为根据Android docs,TYPE_GAME_ROTATION_VECTOR 是:

      描述未校准的旋转矢量传感器类型的常数。

      与 TYPE_ROTATION_VECTOR 相同,只是它不使用地磁场。因此 Y 轴不指向北方,而是指向其他参考,允许该参考漂移与陀螺仪绕 Z 轴漂移相同的数量级。

      在理想情况下,手机旋转并返回到相同的真实世界方向应该报告相同的游戏旋转矢量(不使用地球的地磁场)。但是,随着时间的推移,方向可能会有些偏移。

      然后,您可以根据其他参考手动转换 Y 轴,只要上述理想情况成立,这将起作用。但是,如果传感器开始漂移,那么您的转换就会开始累积误差。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-17
        • 2016-11-25
        • 2011-07-14
        • 2012-08-21
        • 2021-12-26
        • 1970-01-01
        • 2010-11-29
        • 2011-06-29
        相关资源
        最近更新 更多