Android:来自Android Box遥控器的关键事件

时间:2015-03-25 09:05:39

标签: android keyevent box television

我很想知道如何从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);
}

提前致谢。

1 个答案:

答案 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;
}