Android 电视模拟器 KEYCODE_DPAD_CENTER 事件未调度
Android TV Emulator KEYCODE_DPAD_CENTER event not dispatched
使用 Android TV (1080p) 29API 虚拟设备时,我发现 KEYCODE_DPAD_CENTER
KeyEvent
从未被触发。它也不会触发按钮点击事件。
override fun dispatchKeyEvent(event: KeyEvent?): Boolean {
if (event != null) {
when (event.keyCode) {
// This first match is never hit
KeyEvent.KEYCODE_DPAD_CENTER -> Log.d("DPAD", "Center")
// The rest of these all work fine
KeyEvent.KEYCODE_DPAD_UP -> Log.d("DPAD", "UP")
KeyEvent.KEYCODE_DPAD_DOWN -> Log.d("DPAD", "DOWN")
KeyEvent.KEYCODE_DPAD_RIGHT -> Log.d("DPAD", "RIGHT")
KeyEvent.KEYCODE_DPAD_LEFT -> Log.d("DPAD", "LEFT")
}
}
return super.dispatchKeyEvent(event)
}
我解决这个问题的唯一方法是使用物理 Android 电视设备进行调试。希望这会为你们中的一些人节省我在决定使用真正的电视之前浪费在处理模拟器上的时间。
使用 Android TV (1080p) 29API 虚拟设备时,我发现 KEYCODE_DPAD_CENTER
KeyEvent
从未被触发。它也不会触发按钮点击事件。
override fun dispatchKeyEvent(event: KeyEvent?): Boolean {
if (event != null) {
when (event.keyCode) {
// This first match is never hit
KeyEvent.KEYCODE_DPAD_CENTER -> Log.d("DPAD", "Center")
// The rest of these all work fine
KeyEvent.KEYCODE_DPAD_UP -> Log.d("DPAD", "UP")
KeyEvent.KEYCODE_DPAD_DOWN -> Log.d("DPAD", "DOWN")
KeyEvent.KEYCODE_DPAD_RIGHT -> Log.d("DPAD", "RIGHT")
KeyEvent.KEYCODE_DPAD_LEFT -> Log.d("DPAD", "LEFT")
}
}
return super.dispatchKeyEvent(event)
}
我解决这个问题的唯一方法是使用物理 Android 电视设备进行调试。希望这会为你们中的一些人节省我在决定使用真正的电视之前浪费在处理模拟器上的时间。