我正在尝试实现一个可以检测用户是否在键盘上打字(或点击表格)的应用程序。
目前,我正在过滤来自传感器的噪音,我在传感器上设置了一些设置,例如噪音水平取消以及传感器可以用处理程序检测到的频率。
问题在于,如果你用力敲击,传感器会检测到一个强力敲击,就像多个小敲击一样(它有一种弹簧效果)。
如何正确检测每个水龙头?
This is the output using debug
我的sensorListener
sensorEventListener = new SensorEventListener() {
float previous = 0;
private int tapCount = 0;
String tapIntensity = "";
boolean canDetect = true;
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
final float current = sensorEvent.values[2];
if (canDetect){
if (current - previous > sensitivity) {
canDetect = false;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
canDetect= true;
}
}, frequency);
tapIntensity += "= ";
tapCount++;
taps.setText(String.valueOf(tapCount));
}
else {
tapIntensity = " ";
}
previous = current;
}
log(tapIntensity);
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
};