Android TV 模拟器无法识别媒体键事件
Posted
技术标签:
【中文标题】Android TV 模拟器无法识别媒体键事件【英文标题】:Android TV emulator not recognizing media key events 【发布时间】:2019-08-07 01:02:42 【问题描述】:我的活动中有这个事件处理程序:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event)
switch (keyCode)
case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
//do something
return true;
case KeyEvent.KEYCODE_MEDIA_REWIND:
//do something
return true;
default:
return super.onKeyUp(keyCode, event);
在 android TV 设备模拟器中调试时,当我按下方向键扩展控制中的按钮时,我可以看到 KEYCODE_DPAD_LEFT 和 KEYCODE_MEDIA_PLAY_PAUSE。
但是当我按下“快进”或“快退”媒体键时,按键向上事件被触发,但键码“无法识别”。
KeyEvent action=ACTION_UP, keyCode=KEYCODE_UNKNOWN, scanCode=208...
这是 Google 的错误还是我在这里做错了什么?
【问题讨论】:
这里只是在黑暗中拍摄,但您是否尝试过检查提供给 onKeyUp 的 keyCode 与KeyEvent.keyCodeToString(keyCode)
?您也可以尝试覆盖dispatchKeyEvent
,看看那里的 KeyEvent 是否也搞砸了。
keyCode 返回是 KEYCODE_UNKNOWN。 “扫码”是 208
问题解决了吗?即使在 FireStick 我得到 KEYCODE_UNKNOWN
不,抱歉,从来没有
【参考方案1】:
看来 TV Emulator 实际上并没有在此处提供正确的 keycode,这似乎是一个错误。
你可以通过命令行模拟这个:
adb shell input dpad keyevent 90
这将触发KEYCODE_MEDIA_FAST_FORWARD
按钮。
【讨论】:
以上是关于Android TV 模拟器无法识别媒体键事件的主要内容,如果未能解决你的问题,请参考以下文章
Flutter 应用程序在 Android TV 上安装但无法打开,为啥?