通过电视遥控器长按方向键中央按钮

Ish*_*wan 5 android amazon-fire-tv

我正在使用 Amazon Fire Stick TV 开发电视应用程序。我需要通过电视遥控器处理 Dpad 中心按钮的长按事件。onKeyDown()对于 DPad 中心按钮,只有长按 DPad 中心按钮时我才会多次接到呼叫。

尝试长按 DPad 中心按钮时,我没有收到任何对Activity 的OnKeyUp()方法和方法的调用。onLongKeyPress()这是一个错误吗?

我的编译 SDK 版本是“23”。

Ish*_*wan 4

我通过像这样处理KEYCODE_DPAD_CENTERkeyevent解决了这个问题dispatchKeyEvent(KeyEvent event)

@Override
public boolean dispatchKeyEvent(KeyEvent event) {

    int action = event.getAction();
    int keyCode = event.getKeyCode();

    switch (keyCode) {
        case KeyEvent.KEYCODE_DPAD_CENTER:
            Log.d(TAG,"Down time is" + event.getDownTime()+"with action:" + event.getAction()+ "with repeat count"+ event.getRepeatCount()+"with long press"+ event.isLongPress());
            if (action == KeyEvent.ACTION_DOWN && event.isLongPress()) {
                Log.d(TAG,"LOng pres Down time is" + event.getDownTime());
                Log.d(TAG, "Inside long press of Dpad center event");
                onCenter();
                return true;
            }

        default:
            return super.dispatchKeyEvent(event);
    }
}
Run Code Online (Sandbox Code Playgroud)