Android 安卓:安卓盒子遥控器的按键事件

Android 安卓:安卓盒子遥控器的按键事件,android,keyevent,box,television,Android,Keyevent,Box,Television,我很想知道如何从Android电视盒遥控器捕捉按键/按钮事件 例如,我希望在单击遥控器上的“确定”按钮时显示一个弹出菜单。我想从遥控器捕捉下一个/返回键事件 我应该使用Android的Key Event类吗?如果是,我应该如何实现它 我遇到了这个函数,但我不能真正理解它 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.

我很想知道如何从Android电视盒遥控器捕捉按键/按钮事件

例如,我希望在单击遥控器上的“确定”按钮时显示一个弹出菜单。我想从遥控器捕捉下一个/返回键事件

我应该使用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);
}

提前感谢。

您应该在

编辑: 首先,你应该知道遥控器的按键图(这对于所有类型的安卓电视盒都不一样),上面的代码将帮助你知道你在遥控器上按的按键代码。例如,当我按下遥控器上的按钮时,我得到了键代码3。 然后,我想当按下后退键时,会显示一条祝酒词:

@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;
}

啊哈,非常感谢。OK按钮怎么样,中间的那个按钮?我如何捕获它?运行上面的代码并尝试按OK按钮,keycode将打印到Logcat。好的,此代码考虑了来自智能手机的keyevents。我只想要遥控器。有什么解决办法吗?@Tien是的,问题也出在应用程序compat中。如果有人遇到同样的问题,答案是@Tien:你能帮我回答我的问题吗。
@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;
}