0

如何捕获任何物理按钮(包括光学按钮)的两次点击?

类似于 QuickDesk 通过两次单击主页按钮所做的事情。

谢谢

4

1 回答 1

0

只是一个想法:
如果 Android 中已经没有 API 来处理它,那么你可以尝试推迟关于单/双/三/等的结论。通过在该覆盖的 hadrware 按钮处理程序中设置一个小的超时(比如大约 300 毫秒)单击,同时计算对该特定按钮的调用次数,在计时器滴答作响时检查它,你就知道了。


编辑:

这是我的想法。稍微调整一下以获得更优化的性能。

private Timer mDoubleClickTimer;
private boolean possibleDoubleClick = false;

@Override
public boolean onKeyUp(int keyCode, KeyEvent event){
    if(keyCode==KeyEvent.KEYCODE_MENU){ //or whatever key you want to check for double-clicks
        if(mDoubleClickTimer!=null) {mDoubleClickTimer.cancel();}
        if(!possibleDoubleClick){
            possibleDoubleClick = true;
            mDoubleClickTimer = new Timer();
            mDoubleClickTimer.schedule(new TimerTask() {
                @Override
                public void run() {
                    //single click detected
                    //handle it here
                    possibleDoubleClick = false;
                }
            },300);
        }else{
            //double click detected
            //handle it here
            possibleDoubleClick = false;
        }
//... other key processing if you need it
return false;
}
于 2010-10-29T01:44:05.367 回答