Android NDK中的陀螺仪和磁场传感器事件

Android NDK中的陀螺仪和磁场传感器事件,android,android-ndk,android-sensors,Android,Android Ndk,Android Sensors,在Android上本机访问传感器时,如何访问磁场和陀螺仪传感器事件的值: if(event.type == ASENSOR_TYPE_ACCELEROMETER) { float x = event.acceleration.x; ... } else if(event.type == ASENSOR_TYPE_GYROSCOPE) { ??? } else if(event.type == ASENSOR_TYPE_MAG

在Android上本机访问传感器时,如何访问磁场和陀螺仪传感器事件的值:

if(event.type == ASENSOR_TYPE_ACCELEROMETER) {
        float x = event.acceleration.x;
            ...
    }
else if(event.type == ASENSOR_TYPE_GYROSCOPE) {
        ???
    }
else if(event.type == ASENSOR_TYPE_MAGNETIC_FIELD) {
        ???
    }

谢谢

查看传感器的头文件:

ANDROID-NDK-ROOT-DIR/platforms/ANDROID-/arch-arm/usr/include/ANDROID/sensor.h

顺便说一下,我发现了这个例子:

根据这一点,您可以通过以下字段数据获取任何事件的数据:

if(event.type == ASENSOR_TYPE_GYROSCOPE) 
{
    float x=event.data[0];//Rate of rotation around the x axis
    float y=event.data[1];//Rate of rotation around the y axis
    float z=event.data[2];//Rate of rotation around the z axis
}

值在event.values[]数组中-这里已经解释过了:我认为这不太正确。AsSensorEvent结构如下所示:啊!抱歉,我用java驱动它们,如果你用C,那么它们看起来是在加速度或磁场联合中-这将使它成为event.magnetic.x或event.acceleration.aziration-但它们在NeathSee下都是一样的。看,联合中没有陀螺仪的磁场。当然,加速计不会提供角度测量。你是说偶数,磁,方位角?我只是想弄清楚联合体中的哪个字段对应于哪个传感器。除了加速度计,我在任何地方都找不到文档。我只是读出前3个浮点数,看看它们是否有意义。Android文档各不相同,它必须在那里的某个地方,所以就有一个rumage
if(event.type == ASENSOR_TYPE_GYROSCOPE) 
{
    float x=event.data[0];//Rate of rotation around the x axis
    float y=event.data[1];//Rate of rotation around the y axis
    float z=event.data[2];//Rate of rotation around the z axis
}