我正在为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);
}
但是当我按下按钮时,没有任何反应......
答案 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!");
}