我的意思是,对于下面的代码,_aBuffer.size(), _laBuffer.size(), .... 都一样吗?
我在不同的设备上尝试过相同的代码,一个是“是”,另一个是“否”,但我不知道第二个设备的硬件是否有问题,因为它有一些奇怪的行为
public void onSensorChanged(SensorEvent event) {
int eType = event.sensor.getType();
float[] values = event.values.clone();
if (eType == Sensor.TYPE_ACCELEROMETER) {
_aBuffer.offer(values);
System.out.println("onSensorChanged values: "+values[0]+","+values[1]+","+values[2]);
} else if (eType == Sensor.TYPE_LINEAR_ACCELERATION) {
_laBuffer.offer(values);
} else if (eType == Sensor.TYPE_GRAVITY) {
_gBuffer.offer(values);
} else if (eType == Sensor.TYPE_MAGNETIC_FIELD) {
_mBuffer.offer(values);
} else if (eType == Sensor.TYPE_ORIENTATION) {
// do nothing
} else if (eType == Sensor.TYPE_GYROSCOPE) {
_gyroBuffer.offer(values);
} else if (eType == Sensor.TYPE_ROTATION_VECTOR) {
_rotBuffer.offer(values);
}
}