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

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

编译SDK版本为'23'

最佳答案

我通过在KEYCODE_DPAD_CENTER中处理dispatchKeyEvent(KeyEvent event) keyevent来解决它,如下所示:

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

关于android - 通过电视 Remote 长按D Pad中央按钮,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41037228/

10-10 06:18