我从手机获得线性加速并出现问题。 如果加速度高于10米/秒,我想得到i = i + 1但是只增加1个ONCE而不是所有时间读数都高于10米/秒。因此,考虑获得价值再次低于10而不是向i增加+1的时刻。任何人都可以帮助我吗?
现在,我这样做,但效果不好。
@Override
public void onSensorChanged(SensorEvent event) {
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
//odczytWyswX.setText(Float.toString(x));
//odczytWyswY.setText(Float.toString(y));
// odczytWyswZ.setText(Float.toString(z));
if (event.sensor.getType() == Sensor.TYPE_LINEAR_ACCELERATION) {
gravSensorVals = lowPass(event.values.clone(), gravSensorVals);
grav[0] = event.values[0];
grav[1] = event.values[1];
grav[2] = event.values[2];
}
odczytWyswZ.setText(Float.toString(grav[2]));
wychwytywanieGornegoTapniecia();
}
void wychwytywanieGornegoTapniecia(){
if(grav[2]>10){ i++
}
答案 0 :(得分:0)
尝试在逻辑中使用简单的布尔值。
private boolean updateValue; // A field on the Class
if (grav[2] > 10 && updateValue) {
i++;
updateValue = false;
}
if (grav[2] < 10) {
updateValue = true;
}