【发布时间】:2012-11-22 10:37:44
【问题描述】:
您好,我正在寻找在 Android 中禁用 Only HomeKey。我想做的是
@Override
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
return true;
}
if (event.getKeyCode() == KeyEvent.KEYCODE_MENU) {
//action
}
if (event.getKeyCode() == KeyEvent.KEYCODE_HOME) {
//action
}
if (event.getKeyCode() == KeyEvent.KEYCODE_DPAD_CENTER) {
//action
}
return false;
}
但是这样我的后退按钮也被禁用了。有什么办法可以在android中禁用HomeKey。请回复。
【问题讨论】:
-
主页按钮事件不会传递给常规应用。 code.google.com/p/android/issues/detail?id=1979 - 你不能禁用它。
-
在我的应用程序中,我试图禁用主页按钮。它在做什么。但这样它也禁用了我不想要的后退按钮
-
嗨,Zapl,您能解释一下您所说的未交付给应用程序是什么意思吗??谢谢
-
意味着当用户按下主页按钮时,
onKeyDown永远不会被调用。所以event.getKeyCode() == KeyEvent.KEYCODE_HOME永远不会是真的。您在那里禁用了后退按钮,因为在event.getKeyCode() == KeyEvent.KEYCODE_BACK的情况下您返回true,这意味着您的代码处理了该事件并且它不会进入系统,否则会返回。删除该部分,您将再次使用后退按钮。 -
嗨 zapl。我刚刚检查了 logcat 并分析了按下主页按钮时它会转到 event.getKeyCode() == KeyEvent.KEYCODE_HOME 部分。并且删除后退按钮部分也不能解决我的问题。谢谢顺便说一句
标签: android