因此,Android有做传感器融合的规定。它可以结合陀螺仪和加速度计的读数来产生可靠的重力矢量。这是在API中使用传感器类型重力公开的。
现在,NDK也有传感器支持,例如,这里有一个NDK应用程序,它以60 at:NativeActivity样品源读取加速度计。
但是,从传感器.h源码判断,NDK只允许我生成以下传感器类型:
因此,示例代码使用ASENSOR_TYPE_ACCELEROMETER。可悲的是,这里没有ASENSOR_TYPE_GRAVITY。这仅仅是NDK只做SDK的一个基本子集的情况吗?
如何在Android上进行传感器融合?我希望避免引入Java的值,因为在使用Java进行高频读取时,我读过大量CPU使用的警告。
谢谢。
发布于 2014-11-16 16:05:47
不确定你是否还在寻找这个,但我最近也遇到了同样的问题,我只是想和大家分享我是如何解决这个问题的。
ASENSOR_TYPE_*被定义为int,所以用1替换ASENSOR_TYPE_ACCELEORMETER仍然可以让您访问加速度传感器来使用其他传感器。
http://developer.android.com/reference/android/hardware/Sensor.html
并为您想要使用的传感器找到int值,并使用它来代替ASENSOR_TYPE_ACCELEROMETER。例如,要使用陀螺仪,可以使用4。
或者您也可以使用#define定义您自己的int集
https://stackoverflow.com/questions/24771287
复制相似问题