我正在使用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/