2013-04-13 29 views
1

我正在开发适用于Android的主屏幕启动器应用程序。
现在,如果用户已经在主屏幕上,我想要一个自定义操作,当用户按下homebutton时,
Android启动器 - 主页按钮

我知道一些其他的发射器,可以覆盖homebutton,
例如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); 
} 

但是,当我按下为homeButton,没有任何反应..

回答

1

启动某种活动。

所以我相信当用户按home键时你会获得焦点。有一件事我可以肯定地告诉你。这个有可能!

您在View类中得到了setOnFocusChanged()

0

引用此post

你不能 “检测home键按下按钮事件” ,对不起。

但是在同一职位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!"); 
} 
+0

不适用于samsung s3。 –