如何检测设备是否用笔/棒等敲击

时间:2013-02-25 15:56:50

标签: android events android-sensors

您好,我想知道平板电脑是否轻轻敲打。我想也许实施accellerometer应该这样做。但是我看到所有人都试图用它来寻找动摇动作。如果平板电脑被点击,有什么方法可以找到吗?感谢。

编辑:通过说点击我的意思是点击平板电脑顶部。不在屏幕上。

1 个答案:

答案 0 :(得分:0)

我想说检测水龙头的更简单的途径是测量MotionEvent.ACTION_DOWN和相应的ACTION_UP之间的时间 - 如果它小于350毫秒,用户可能正在做一个水龙头而不是按或其他一些手势。

考虑以下内容,其中TAP_CONSTANT为抽头持续时间的整数常量:

private class TapListener implements OnTouchListener
{
    long time;

    @Override
    public boolean onTouch(View v, MotionEvent event)
    {

        if (event.getAction() == MotionEvent.ACTION_DOWN)
        {
            time = System.currentTimeMillis();
        }
        else if (event.getAction() == MotionEvent.ACTION_UP)
        {
            if ((System.currentTimeMillis() - time) <= TAP_CONSTANT)
            {
                // We have a tap event, call our tap logic methods!
                return true;
            }
        }
        return false;
    }
}