在Android NDK中进行传感器融合

时间:2014-07-16 02:31:11

标签: android android-ndk android-sensors sensor-fusion

因此,Android JAVA SDK具有进行传感器融合的规定。 它可以结合陀螺仪和加速度计读数来生成可靠的重力矢量。 这在API中公开,传感器类型为TYPE_GRAVITY

现在,NDK也有传感器支持,例如,这是一个示例NDK应用程序,它以60Hz读取加速度计:NativeActivity sample source

但是,从sensor.h sourcecode判断,NDK只允许我生成以下传感器类型:

  • 加速度计
  • 磁场
  • 陀螺
  • 接近

因此示例代码使用ASENSOR_TYPE_ACCELEROMETER。可悲的是,没有ASENSOR_TYPE_GRAVITY。这仅仅是NDK只做SDK API的准系统子集的情况吗?

如何在Android NDK上进行传感器融合?我想避免从Java中引入值,因为我在Java中使用高频读数时已经阅读了大量CPU使用的警告。

谢谢。

1 个答案:

答案 0 :(得分:0)

不确定你是否还在寻找这个,但我最近遇到了同样的问题,只是想我会分享我是如何解决这个问题的。

ASENSOR_TYPE _ *被定义为int,因此用1替换ASENSOR_TYPE_ACCELEORMETER仍然可以让您访问加速计传感器以使用其他传感器看看

http://developer.android.com/reference/android/hardware/Sensor.html

找到要使用的传感器的int值,并使用它代替ASENSOR_TYPE_ACCELEROMETER。例如,要使用GYROSCOPE,您可以使用4。

或者您也可以使用#define

定义自己的int集