我想這個下面的代碼來檢測正確的電話震動,但它不是我搖動手機留下我得到RIGHT
或同時獲得的RIGHT
和LEFT
正確經常工作,例如:Android的檢測正確的電話動搖
@Override
public void onSensorChanged(int sensor, float[] values) {
if (sensor == SensorManager.SENSOR_ACCELEROMETER) {
long curTime = System.currentTimeMillis();
// only allow one update every 100ms.
if ((curTime - lastUpdate) > 200) {
long diffTime = (curTime - lastUpdate);
lastUpdate = curTime;
x = values[SensorManager.DATA_X];
y = values[SensorManager.DATA_Y];
z = values[SensorManager.DATA_Z];
if (Round(x, 4) > 10.0000) {
Toast.makeText(this, "Right shake detected", Toast.LENGTH_SHORT).show();
} else if (Round(x, 4) < -10.0000) {
Toast.makeText(this, "Left shake detected", Toast.LENGTH_SHORT).show();
}
last_x = x;
last_y = y;
last_z = z;
}
}
}
更新的Post:
if (Utils.Round(x, 4) > 8.0000) {
//left
} else if (Utils.Round(x, 4) < -8.0000) {
//right
} else if (z > 9 && z < 10)
//down
else if (z > -10 && z < -9)
//up
好的,請允許我更改我的代碼並測試 –
我很抱歉,先生。越來越多的更改我的代碼後,我得到錯誤,你能修復我的代碼?我更新後,謝謝 –