有谁知道是否可以将 GAME_ROTATION_VECTOR 反向移植到 Android 4.x?
谢谢
有谁知道是否可以将 GAME_ROTATION_VECTOR 反向移植到 Android 4.x?
谢谢
您可以根据加速度计和陀螺仪数据重新实现一个。但这并不简单。您可以搜索“orientation kalman filter”,看看是否有适用于 Android 的实现。如果您发现一个效果很好,请告诉我们!
没有可以轻松向后移植的现有平台代码,因为这些传感器值的计算是在本机层完成的(这里是JNI 代码,这里是传感器管理器的 Java 实现,它从本机代码接收传感器事件更新)。
因此,根据您的用例,您最好的选择可能是在 Android 4.X 上使用TYPE_ROTATION_VECTOR传感器,因为根据Android 文档,TYPE_GAME_ROTATION_VECTOR 是:
描述未校准的旋转矢量传感器类型的常数。
与 TYPE_ROTATION_VECTOR 相同,只是它不使用地磁场。因此,Y 轴不指向北方,而是指向其他参考,允许该参考漂移与陀螺仪绕 Z 轴漂移相同的数量级。
在理想情况下,手机旋转并返回到相同的真实世界方向应该报告相同的游戏旋转矢量(不使用地球的地磁场)。然而,随着时间的推移,方向可能会有些漂移。
然后,您可以根据其他参考手动转换 Y 轴,只要上述理想情况成立,这将起作用。但是,如果传感器开始漂移,那么您的转换将开始累积错误。