我有一個簡單的應用程序,它讀取加速計值(對於x,y和z軸)。但是對於某些價值,我以編程方式振動手機。所以無論何時發生振動,加速度計的值在範圍內高度上下閃爍。我想避免這種情況。請告訴我如何在振動模式下防止加速度計給出不同的結果。振動使加速計給出錯誤的值
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER)
return;
switch (mDisplay.getRotation()) {
case Surface.ROTATION_0:
x = event.values[0];
y = event.values[1];
break;
case Surface.ROTATION_90:
x = -event.values[1];
y = event.values[0];
Log.i("ROT: ", "90");
break;
case Surface.ROTATION_180:
x = -event.values[0];
y = -event.values[1];
break;
case Surface.ROTATION_270:
x = event.values[1];
y = -event.values[0];
break;
}
}
謝謝。
嗨,感謝您的回覆。但我不知道如何實現它。我對加速度計的東西很陌生。從哪裏獲取accelFilter [0]值,最後它是如何影響x,y和z值的。那些x,y和z值來自event.values [0]等。抱歉,但我很困惑。 – 2012-01-06 10:18:03
accelFilter和lastAccel是空變量... alpha是0.1和0.9之間的係數...我用sugest來使用0.1 ...和accelX是你的加速度。在accelFilter [0]中將存儲加速度計的新值。 – 2012-01-06 10:21:14
嗨,我跟着這個網址來尋找低過濾器,但問題仍然存在。 http://developer.android.com/reference/android/hardware/SensorEvent.html謝謝 – 2012-01-06 10:39:32