如何以编程方式禁用android硬件按钮?

如何以编程方式禁用android硬件按钮?,android,Android,我正在开发具有锁定功能的android应用程序。请建议我如何通过编程禁用所有硬键。在这里,我使用beleow代码来禁用后退按钮。我希望android中的所有硬键(如主页、菜单按钮、通知栏)都能通过编程实现类似的功能。返回按钮(在活动或片段中) 在android中覆盖主页按钮/在android中禁用主页按钮/在android中单击主页按钮时保持活动状态 @Override public void onAttachedToWindow(){ Log.i("TESTE",

我正在开发具有锁定功能的android应用程序。请建议我如何通过编程禁用所有硬键。在这里,我使用beleow代码来禁用后退按钮。我希望android中的所有硬键(如主页、菜单按钮、通知栏)都能通过编程实现类似的功能。

返回按钮(在活动或片段中)


在android中覆盖主页按钮/在android中禁用主页按钮/在android中单击主页按钮时保持活动状态

 @Override
    public void onAttachedToWindow(){ 
        Log.i("TESTE", "onAttachedToWindow");
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
        super.onAttachedToWindow(); 
    }
    public boolean onKeyDown(int keyCode, KeyEvent event){
        if (keyCode == KeyEvent.KEYCODE_HOME) {
            Log.i("TESTE", "BOTAO HOME");
            return true;
        }
        return super.onKeyDown(keyCode, event);   
    }

你现在能试试吗?你改变了什么?它不起作用了?我想禁用“主页”按钮单击事件。@user2210356如果要禁用“主页”按钮,请尝试此操作,然后可以将应用程序设为默认启动器。我在我的redmi note 4上试过这个,效果很好。在清单文件WindowManager.LayoutParams.TYPE_KEYGUARD中的开始活动标记中使用以下代码不可用。
  @Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

switch( event.getKeyCode() ) {

     case KeyEvent.KEYCODE_MENU:
         result = true;
        break;

    case KeyEvent.KEYCODE_VOLUME_UP:
         result = true;
        break;
    case KeyEvent.KEYCODE_VOLUME_DOWN:
        result = true;
        break;
    case KeyEvent.KEYCODE_BACK:
        result = true;
        break;
     default:
        result= super.dispatchKeyEvent(event);
        break;
 }

 return result;
}
 @Override
    public void onAttachedToWindow(){ 
        Log.i("TESTE", "onAttachedToWindow");
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
        super.onAttachedToWindow(); 
    }
    public boolean onKeyDown(int keyCode, KeyEvent event){
        if (keyCode == KeyEvent.KEYCODE_HOME) {
            Log.i("TESTE", "BOTAO HOME");
            return true;
        }
        return super.onKeyDown(keyCode, event);   
    }