Android启动器 - 主页按钮

时间:2013-04-13 19:06:45

标签: java android android-launcher

我正在为Android开发一个Home Screen Launcher App 现在,如果用户已经在主屏幕上,则 我想在用户按下主页按钮时进行自定义操作。

我知道其他一些发射器可以覆盖主页按钮,
例如Go Launcher Ex。

我的代码是:

@Override
public boolean dispatchKeyEvent(KeyEvent event)
{
    int action = event.getAction();
    int keyCode = event.getKeyCode();

    switch (action)
    {
        case KeyEvent.ACTION_DOWN:
            switch (keyCode)
            {
                case KeyEvent.KEYCODE_HOME:
                    break;
            }
            break;

        case KeyEvent.ACTION_UP:
            switch (keyCode)
            {
                case KeyEvent.KEYCODE_HOME:
                    if (!event.isCanceled())
                        Log.i("TEST", "HOME");
                    break;
            }
            break;
    }

    return super.dispatchKeyEvent(event);
}

但是当我按下按钮时,没有任何反应......

2 个答案:

答案 0 :(得分:1)

启动器是一种活动。

所以我相信当用户按下主页按钮时你会获得焦点。有一件事我可以肯定地告诉你。这是可能的!

你在View类中有setOnFocusChanged()

答案 1 :(得分:0)

引用此post

  

您无法“检测主页按键按下事件”,抱歉。

然而,在同一篇文章中,Idistic认为这是一种解决方法:

long userInteractionTime = 0;

@Override
public void onUserInteraction() {
    userInteractionTime = System.currentTimeMillis();
    super.onUserInteraction();
    Log.i("appname","Interaction");
}

@Override
public void onUserLeaveHint() {
    long uiDelta = (System.currentTimeMillis() - userInteractionTime);

    super.onUserLeaveHint();
    Log.i("bThere","Last User Interaction = "+uiLag);
    if (uiDelta < 100)
        Log.i("appname","Home Key Pressed");    
    else
        Log.i("appname","We are leaving, but will probably be back shortly!");  
}