我有一种检测方法是幅度低于阈值。
public boolean amplitude_Detection(double ampA) {
//Thresholds for amplitude acceleration
double acceAmplitudeTH = 3.0;
//Compare value with threshold
if (ampA < acceAmplitudeTH) {
return true;
}
return false;
}
接下来在我的onSensorChanged中,如果上面的代码返回true,我有if语句,我想暂停我的传感器5秒钟。 5秒后,再次恢复传感器。然而,在我的实验中,通过在同一位置将手机放在床上10次。计时器有时会被触发两次,有时只会触发一次。任何人都知道发生了什么?
if(algo.amplitude_Detection(ampA))
{
//Pause sensors
pauseSensor();
Toast.makeText(getBaseContext(), "Pause ", Toast.LENGTH_SHORT).show();
new CountDownTimer(5000, 1000) {
public void onTick(long millisUntilFinished) {
((TextView)findViewById(R.id.timeCalc)).setText("Time Left: "+millisUntilFinished/1000+"\n"+ampA);
}
public void onFinish() {
((TextView)findViewById(R.id.timeCalc)).setText("Done");
resumeSensor();
}
}.start();
}
}
public void pauseSensor()
{
senManager.unregisterListener(this, sensorAccelerometer);
}
public void resumeSensor() {senManager.registerListener(this, sensorAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);}