Android GAME_ROTATION_VECTOR backport

时间:2013-09-19 05:02:28

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

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

感谢

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

  

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

     

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

     

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

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