Android TV模拟器无法转发主机键盘输入的问题求助
Android TV模拟器键盘输入无响应问题

我想用主机键盘控制Android TV模拟器,但键盘输入无法转发到模拟器——方向键(上下左右)、回车、ESC键都没法控制leanback UI的选择(对应移动、确认、返回操作)。不管是从Android Studio启动还是命令行启动,问题都存在。比如截图里按上箭头没法把选中项移到“Reality”区域。我用的是macOS Monterey系统,Android Studio是Jellyfish Canary 4版本,是不是漏了什么设置?
另外,启用“hardware input”也没用。

已启用dPad和键盘:
hw.dPad = yes hw.keyboard = yes
以下是config.ini的内容:
AvdId = Android_TV_1080p_API_30_2 PlayStore.enabled = false abi.type = x86 avd.ini.displayname = Android TV (1080p) API 30 2 avd.ini.encoding = UTF-8 disk.dataPartition.size = 6442450944 fastboot.chosenSnapshotFile = fastboot.forceChosenSnapshotBoot = no fastboot.forceColdBoot = no fastboot.forceFastBoot = yes hw.accelerometer = no hw.arc = false hw.audioInput = yes hw.battery = no hw.camera.back = None hw.camera.front = None hw.cpu.arch = x86 hw.cpu.ncore = 4 hw.dPad = yes hw.device.hash2 = MD5:41e6ce015774b2a310e5fdbbd3964241 hw.device.manufacturer = Google hw.device.name = tv_1080p hw.gps = yes hw.gpu.enabled = yes hw.gpu.mode = auto hw.initialOrientation = landscape hw.keyboard = yes hw.keyboard.lid = yes hw.lcd.density = 320 hw.lcd.height = 1080 hw.lcd.width = 1920 hw.mainKeys = yes hw.ramSize = 1536 hw.sdCard = yes hw.sensors.orientation = no hw.sensors.proximity = no hw.trackBall = no image.sysdir.1 = system-images/android-30/google-tv/x86/ runtime.network.latency = none runtime.network.speed = full sdcard.path = /Users/180238/.android/avd/Android_TV_1080p_API_30_2.avd/sdcard.img sdcard.size = 512 MB showDeviceFrame = no skin.dynamic = yes skin.name = 1920x1080 skin.path = _no_skin skin.path.backup = _no_skin tag.display = Google TV tag.id = google-tv vm.heapSize = 48
以下是hardware-qemu.ini的内容(两者均位于~/.android/avd/Android_TV_1080p_API_30_2.avd目录下):
hw.cpu.arch = x86 hw.cpu.model = qemu32 hw.cpu.ncore = 4 hw.ramSize = 2048 hw.screen = multi-touch hw.mainKeys = true hw.trackBall = false hw.keyboard = true hw.keyboard.lid = true hw.keyboard.charmap = qwerty2 hw.dPad = true hw.rotaryInput = false hw.gsmModem = true hw.gps = true hw.battery = false hw.accelerometer = false hw.accelerometer_uncalibrated = true hw.gyroscope = true hw.audioInput = true hw.audioOutput = true hw.sdCard = true hw.sdCard.path = /Users/180238/.android/avd/Android_TV_1080p_API_30_2.avd/sdcard.img disk.cachePartition = true disk.cachePartition.path = /Users/180238/.android/avd/../avd/Android_TV_1080p_API_30_2.avd/cache.img disk.cachePartition.size = 66m test.quitAfterBootTimeOut = -1 test.delayAdbTillBootComplete = 0 test.monitorAdb = 0 hw.lcd.width = 1920 hw.lcd.height = 1080 hw.lcd.depth = 16 hw.lcd.circular = false hw.lcd.density = 320 hw.lcd.backlight = true hw.lcd.vsync = 60 hw.gltransport = pipe hw.gltransport.asg.writeBufferSize = 1048576 hw.gltransport.asg.writeStepSize = 4096 hw.gltransport.asg.dataRingSize = 32768 hw.gltransport.drawFlushInterval = 800 hw.displayRegion.0.1.xOffset = -1 hw.displayRegion.0.1.yOffset = -1 hw.displayRegion.0.1.width = 0 hw.displayRegion.0.1.height = 0 hw.displayRegion.0.2.xOffset = -1 hw.displayRegion.0.2.yOffset = -1 hw.displayRegion.0.2.width = 0 hw.displayRegion.0.2.height = 0 hw.displayRegion.0.3.xOffset = -1 hw.displayRegion.0.3.yOffset = -1 hw.displayRegion.0.3.width = 0 hw.displayRegion.0.3.height = 0 hw.display1.width = 0 hw.display1.height = 0 hw.display1.density = 0 hw.display1.xOffset = -1 hw.display1.yOffset = -1 hw.display1.flag = 0 hw.display2.width = 0 hw.display2.height = 0 hw.display2.density = 0 hw.display2.xOffset = -1 hw.display2.yOffset = -1 hw.display2.flag = 0 hw.display3.width = 0 hw.display3.height = 0 hw.display3.density = 0 hw.display3.xOffset = -1 hw.display3.yOffset = -1 hw.display3.flag = 0 hw.multi_display_window = false hw.hotplug_multi_display = false hw.gpu.enabled = true hw.gpu.mode = host hw.initialOrientation = landscape hw.camera.back = None hw.camera.front = None vm.heapSize = 512 hw.sensors.light = true hw.sensors.pressure = true hw.sensors.humidity = true hw.sensors.proximity = false hw.sensors.magnetic_field = true hw.sensors.magnetic_field_uncalibrated = true hw.sensors.gyroscope_uncalibrated = true hw.sensors.orientation = false hw.sensors.temperature = true hw.sensors.rgbclight = false hw.sensor.hinge = false hw.sensor.hinge.count = 0 hw.sensor.hinge.type = 0 hw.sensor.hinge.sub_type = 0 hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture = 1 hw.sensor.roll = false hw.sensor.roll.count = 0 hw.sensor.roll.resize_to_displayRegion.0.1_at_posture = 6 hw.sensor.roll.resize_to_displayRegion.0.2_at_posture = 6 hw.sensor.roll.resize_to_displayRegion.0.3_at_posture = 6 hw.sensors.heart_rate = false hw.sensors.wrist_tilt = false hw.useext4 = true hw.arc = false hw.arc.autologin = false hw.device.name = tv_1080p kernel.path = /Users/180238/Library/Android/sdk/system-images/android-30/google-tv/x86//kernel-ranchu-64 kernel.newDeviceNaming = yes kernel.supportsYaffs2 = no disk.ramdisk.path = /Users/180238/Library/Android/sdk/system-images/android-30/google-tv/x86//ramdisk.img disk.systemPartition.initPath = /Users/180238/Library/Android/sdk/system-images/android-30/google-tv/x86//system.img disk.systemPartition.size = 3083m disk.vendorPartition.initPath = /Users/180238/Library/Android/sdk/system-images/android-30/google-tv/x86//vendor.img disk.vendorPartition.size = 800m disk.dataPartition.path = /Users/180238/.android/avd/../avd/Android_TV_1080p_API_30_2.avd/userdata-qemu.img disk.dataPartition.size = 6g disk.encryptionKeyPartition.path = /Users/180238/.android/avd/../avd/Android_TV_1080p_API_30_2.avd/encryptionkey.img PlayStore.enabled = false avd.name = Android_TV_1080p_API_30_2 avd.id = Android_TV_1080p_API_30_2 fastboot.forceColdBoot = false userdata.useQcow2 = false firstboot.bootFromDownloadableSnapshot = true firstboot.bootFromLocalSnapshot = true firstboot.saveToLocalSnapshot = true android.sdk.root = /Users/180238/Library/Android/sdk android.avd.home = /Users/180238/.android/avd
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

