android - 失去对 AndroidTV 的输入关注
问题描述
我在 AndroidTV 上有一个非常奇怪的错误。
我AlertDialog
在应用程序中打开一个,在 10-20% 的情况下我完全失去了远程输入焦点。全局处理的按钮(例如 HOME)可以正常工作,但 DPAD、OK 和其他远程按钮什么也不做。
在 logcat 中,我看到了这个:
W: Cancelling event due to no window focus: KeyEvent { action=ACTION_UP, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=0, flags=0x28, repeatCount=0, eventTime=4748412, downTime=4748300, deviceId=9, source=0x301 }
W: Dropping event due to no window focus: KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=0, flags=0x8, repeatCount=0, eventTime=4748468, downTime=4748468, deviceId=9, source=0x301 }
W: Cancelling event due to no window focus: KeyEvent { action=ACTION_UP, keyCode=KEYCODE_DPAD_LEFT, scanCode=105, metaState=0, flags=0x28, repeatCount=0, eventTime=4748570, downTime=4748468, deviceId=9, source=0x301 }
我检查了adb shell dumpsys window
输出是否有任何焦点异常,但没有什么奇怪的。
我的猜测是焦点被某些东西挡住了,但我不知道那可能是什么。我将不胜感激任何提示。
解决方案
没有看到您的代码,但它可能是竞争条件问题,因为您提到它是“10-20% 的情况”。你可以有两种方法来弄清楚。1. 尝试在您的活动中添加日志 onKeyDown 或 onKeyUp 方法,看看当您按下遥控器上的按钮时会发生什么。2. 启动对话框时调用“yourview.requestFocus()”。请注意,yourview 是您的对话框的根视图,只需根据您的情况更改为任何内容。
推荐阅读
- google-cloud-platform - 如何在 Google Cloud 中创建类似于 Salesforce 插件的自定义插件?
- swift - 查找 AVPictureInPictureController 的共享实例以获取 isPictureInPictureActive 值
- mongodb - $indexOfArray 按数组元素 mongoDB 内的对象属性搜索
- python - 在屏幕而不是相机上显示蒙版对象检测
- python - 在匹配查询的数据框中查找最后一次出现的连续(时间)行
- powershell - 如何在 Go 中查询 Windows 计划任务信息?
- python - 如何让 BeautifulSoup 的 select 方法从搜索列表中找到两个选择器
- javascript - 想要在电子邮件订阅表单中添加一个简单的数学验证码
- node.js - Oauth2 和 JWT 的区别
- php - 无法通过 GitHub 将 Laravel php 应用程序部署到 azure