我很想知道如何从Android TV Box遥控器中捕获按键/按钮事件?
例如,我想要一个弹出菜单显示我从遥控器单击确定按钮。我想从远程控制器中捕获下一个/后退键事件。
我应该使用Android的Key Event类,如果是,我应该如何实现呢?
我遇到过这个功能,但我无法理解它。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_A:
{
//your Action code
return true;
}
}
return super.onKeyDown(keyCode, event);
}
提前致谢。
答案 0 :(得分:1)
你应该抓住dispatchKeyEvent
上的关键事件@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
Log.e(TAG, "Key down, code " + event.getKeyCode());
} else if (event.getAction() == KeyEvent.ACTION_UP) {
Log.e(TAG, "Key up, code " + event.getKeyCode());
}
return true;
}
编辑: 首先,您应该知道遥控器的键盘图(对于所有类型的Android电视盒都不一样),上面的代码将帮助您了解您在遥控器上按下的键的代码。例如,当我按下遥控器上的按钮BACK时,我得到了密钥代码3。 然后,我想按下后退键时,将显示Toast消息:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// You should make a constant instead of hard code number 3.
if (event.getAction() == KeyEvent.ACTION_UP && event.getKeyCode == 3) {
Toast.makeText(this, "Hello, you just press BACK", Toast.LENG_LONG).show();
}
return true;
}