У меня андроид-устройство с физической клавиатурой, бренд UBX I6200S (Android 5.1.1).Мой код, как показано ниже:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
Log.e("MainActivity", "dispatchKeyEvent");
final int keyCode = event.getKeyCode();
final int action = event.getAction();
if (action == KeyEvent.ACTION_UP || action == KeyEvent.ACTION_MULTIPLE) {
Log.e("MainActivity", "ACTION_UP || ACTION_MULTIPLE");
return true;
}
if (action == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
Log.e("MainActivity", "click KEYCODE_DEL");
return true;
}
if (keyCode == KeyEvent.KEYCODE_ENTER) {
Log.e("MainActivity", "click KEYCODE_ENTER");
return true;
}
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.e("MainActivity", "click KEYCODE_BACK");
return true;
}
if (keyCode == KeyEvent.KEYCODE_MENU) {
Log.e("MainActivity", "click KEYCODE_MENU");
return true;
}
Log.e("MainActivity", "click Other Keys");
return super.dispatchKeyEvent(event);
}
return super.dispatchKeyEvent(event);
}
Когда выскакивает программная клавиатура, когда я нажимаю кнопку удаления на физической клавиатуре устройства, журнал Log.e("MainActivity", "dispatchKeyEvent");
не может отображаться, но когда я нажимаюКнопка ввода на физической клавиатуре устройства, может показывать журнал Log.e("MainActivity", "dispatchKeyEvent");
.
Но когда софт-клавиатура скрыта, независимо от того, какую клавишу я нажимаю, журнал Log.e("MainActivity", "dispatchKeyEvent");
может показывать
кто-нибудь может помочь мне решить это?потому что я хочу что-то сделать, когда нажимаю кнопку удаления на физической клавиатуре устройства.