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