在Android中,仅禁用HomeKey按钮

在Android中,仅禁用HomeKey按钮,android,Android,嗨,我想在Android中禁用仅HomeKey。我想做的是 @Override public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); super.onAttachedToWindow(); } @Override public boolean onKeyDown(int keyCode, K

嗨,我想在Android中禁用仅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。请回复。

是的,这是可能的。在您的清单中,在活动减速下,替换

<category android:name="android.intent.category.LAUNCHER" />


请注意,通过此更改,您的应用程序在“所有应用程序”部分将不可见。此外,用户需要将您的应用程序设置为默认主屏幕。试用“学步锁”应用程序,它可以很好地处理这种情况。

状态:

主钥匙。此密钥由框架处理,永远不会交付 提交申请

更具体地说,PhoneWindowManager在方法
interceptKeyBeforeDispatching(..)
中使用密钥。在这个方法中,密钥被处理和使用,这意味着Android不允许覆盖这个功能

更新:

你的背部行为不再起作用的原因是你自己已经处理好了。密钥进入
onKeyDown
-方法,您可以通过返回true或false来使用密钥(yes或no)。通过实施以下措施:

 if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {

       return true;
 }

您明确声明您已经在
活动中处理了Back键,这也意味着“返回”的默认行为被覆盖。要恢复其原始行为,请使用
返回super.onKeyDown(keyCode,event)

主页按钮事件未发送到常规应用程序。-你不能禁用它。在我的应用程序中,我正在尝试禁用“主页”按钮。这当然是它在做的。但是,这也禁用了我的后退按钮,我不想这么做。Zapl,你能解释一下,你说的不发送到应用程序是什么意思吗。??Thanks表示当用户按下home(主页)按钮时,不会调用
onKeyDown
。因此
event.getKeyCode()==KeyEvent.KEYCODE\u HOME
永远不会为真。您禁用了其中的后退按钮,因为在
event.getKeyCode()==KeyEvent.KEYCODE\u back
的情况下,您返回true,这意味着您的代码处理了该事件,它不会通过系统返回。移除该部分,您将使back按钮再次工作。嗨,zapl。我刚刚检查了logcat,并分析了按下home按钮后,它将进入event.getKeyCode()==KeyEvent.KEYCODE\u home部分。删除后退按钮部分也不能解决我的问题。谢谢你。感谢您的回复,但是当您尝试处理上述代码时,它是如何禁用所有内容的。?我不能只禁用homebutton而不禁用back键吗?我已经更新了我的评论。正如我已经解释的,“homebutton”功能不能由您更改。嗨,我尝试通过返回false而不是返回true来执行相同的操作。但是它仍然不起作用:)返回到超级类,这样就可以在那里处理它了。
 if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {

       return true;
 }