註冊頻率始終最高。 但問題是:同步還是不行?android中onSensorChanged的頻率是多少?
如果陀螺儀傳感器最多提供200HZ,加速度傳感器最多在我的手機提供50HZ, 那麼onSensorChanged函數提供陀螺儀數據4次然後加速數據1次?
我剛剛發現,如果我呼籲陀螺儀的數據爲50Hz和加速度數據20赫茲, 總會有相同的陀螺儀的數據由2 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部分:
公共無效onSensorChanged(SensorEvent事件){
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;
}
}