gpt4 book ai didi

android - android中onSensorChanged的频率是多少?

转载 作者:行者123 更新时间:2023-11-29 15:14:34 28 4
gpt4 key购买 nike

注册频率始终是最高的。但问题是:是否同步?

如果陀螺传感器最多提供200HZ,我手机中的加速度传感器最多提供50HZ,那么 onSensorChanged 函数提供 4 次陀螺仪数据然后提供 1 次加速数据?

我刚刚发现如果我要求陀螺仪数据 50Hz 和加速数据 20Hz,总是会有相同的陀螺仪数据 2 x 2。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~第 1 部分:

public void initListeners(){
mSensorManager.registerListener(this,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_FASTEST);

mSensorManager.registerListener(this,
mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE),
SensorManager.SENSOR_DELAY_FASTEST);

mSensorManager.registerListener(this,
mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
SensorManager.SENSOR_DELAY_FASTEST);
}

第 2 部分:

public void onSensorChanged(传感器事件事件){

    switch(event.sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
// copy new accelerometer data into accel array and calculate orientation
System.arraycopy(event.values, 0, accel, 0, 3);
calculateAccMagOrientation();
...
}
break;

case Sensor.TYPE_GYROSCOPE:
// process gyro data
gyroFunction(event);
break;

case Sensor.TYPE_MAGNETIC_FIELD:
// copy new magnetometer data into magnet array
System.arraycopy(event.values, 0, magnet, 0, 3);
break;
}
}

最佳答案

调用 registerListener() 方法时指定默认数据延迟 (SENSOR_DELAY_NORMAL)。数据延迟(或采样率)控制传感器事件通过 onSensorChanged() 回调方法发送到您的应用程序的时间间隔。默认数据延迟适用于监控典型的屏幕方向变化并使用 200,000 微秒的延迟。您可以指定其他数据延迟,例如 SENSOR_DELAY_GAME(20,000 微秒延迟)、SENSOR_DELAY_UI(60,000 微秒延迟)或 SENSOR_DELAY_FASTEST(0 微秒延迟)。从 Android 3.0(API 级别 11)开始,您还可以将延迟指定为绝对值(以微秒为单位)。可以引用doc更多信息!!!

关于android - android中onSensorChanged的频率是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25948629/

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