gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 12:45:14 30 4
gpt4 key购买 nike

在 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

typedef struct ASensorVector {
union {
float v[3];
struct {
float x;
float y;
float z;
};
struct {
float azimuth;
float pitch;
float roll;
};
};
int8_t status;
uint8_t reserved[3];
} ASensorVector;

typedef struct ASensorEvent {
int32_t version; /* sizeof(struct ASensorEvent) */
int32_t sensor;
int32_t type;
int32_t reserved0;
int64_t timestamp;
union {
float data[16];
ASensorVector vector;
ASensorVector acceleration;
ASensorVector magnetic;
float temperature;
float distance;
float light;
float pressure;
};
int32_t reserved1[4];
} ASensorEvent;

顺便说一句,我找到了那个例子:

https://github.com/Uroc327Mirrors/pixellight/blob/43a661e762034054b47766d7e38d94baf22d2038/Base/PLInput/src/Backend/Android/AndroidSensorManagerDevice.cpp

关于android - Android NDK 中的陀螺仪和磁场传感器事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19089418/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com