Android capture hardware keyboard event without ed

2020-06-17 06:02发布

How can I capture the hardware keyboard events without using an EditText field?

For example, in a simple activity the display a square on the screen, when a "B" is pressed on the slide keyboard I want to turn it blue, when a "G" is presses, turn it Green, etc.

I don't need help with the color code, just how to intercept the keypress

This is not about the soft or virtual keyboard

2条回答
一夜七次
2楼-- · 2020-06-17 06:46

Activity class has already implemented KeyEvent.CallBack see here

you just need to override these methods and implements all events that you want

查看更多
可以哭但决不认输i
3楼-- · 2020-06-17 06:55

Android classes usually provide event handlers, you can implement when subclassing them. The Activity class has the following event handlers:

  • onKeyDown(int keyCode, KeyEvent event)
  • onKeyLongPress(int keyCode, KeyEvent event)
  • onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)
  • onKeyShortcut(int keyCode, KeyEvent event)
  • onKeyUp(int keyCode, KeyEvent event)

In addition all views have the following event handlers:

  • onKeyDown(int, KeyEvent)
  • onKeyUp(int, KeyEvent)

I guess there are many other classes that have similar event handlers for key events, but this should be enough for your situation. The KeyEvent then contains information about the pressed key, i.e. the key code.

查看更多
登录 后发表回答