Android SensorEventListener在桌面/键盘上点击检测

时间:2016-11-22 09:44:47

标签: android accelerometer sensor tap

我正在尝试实现一个可以检测用户是否在键盘上打字(或点击表格)的应用程序。

目前,我正在过滤来自传感器的噪音,我在传感器上设置了一些设置,例如噪音水平取消以及传感器可以用处理程序检测到的频率。

问题在于,如果你用力敲击,传感器会检测到一个强力敲击,就像多个小敲击一样(它有一种弹簧效果)。

如何正确检测每个水龙头?

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) {

        }
    };

0 个答案:

没有答案