在Android-NDK中进行传感器融合

在Android-NDK中进行传感器融合,android,android-ndk,android-sensors,sensor-fusion,Android,Android Ndk,Android Sensors,Sensor Fusion,因此,Android JAVA SDK提供了传感器融合功能。 它可以结合陀螺仪和加速计读数生成可靠的重力矢量。 这在传感器类型的API中公开 现在,NDK也支持传感器,例如,下面是一个NDK应用程序示例,它以60Hz的频率读取加速计: 但是,从测试结果来看,NDK只允许我生成以下传感器类型: 加速计 磁场 陀螺仪 轻的 接近 因此,示例代码使用传感器型加速度计。可悲的是,没有一个重力传感器。这仅仅是NDK只执行SDK API的一个基本子集的情况吗 如何在Android NDK上进行传感器融合

因此,Android JAVA SDK提供了传感器融合功能。 它可以结合陀螺仪和加速计读数生成可靠的重力矢量。 这在传感器类型的API中公开

现在,NDK也支持传感器,例如,下面是一个NDK应用程序示例,它以60Hz的频率读取加速计:

但是,从测试结果来看,NDK只允许我生成以下传感器类型:

  • 加速计
  • 磁场
  • 陀螺仪
  • 轻的
  • 接近
因此,示例代码使用传感器型加速度计。可悲的是,没有一个重力传感器。这仅仅是NDK只执行SDK API的一个基本子集的情况吗

如何在Android NDK上进行传感器融合?我希望避免从Java中引入值,因为我在Java中进行高频读取时读到了关于CPU大量使用的警告


谢谢。

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

传感器类型被定义为int,因此将传感器类型加速度计替换为1仍然可以让您使用其他传感器查看加速度传感器

找到你想要使用的传感器的int值,用它代替传感器类型的加速计。例如,要使用陀螺仪,可以使用4

或者您也可以使用#define定义自己的int集