27 寸隐藏付款码输入框设计

背景

27 寸 RK3568 设备的扫码枪以外接键盘方式上报字符。当前按键转交方案在真机“我的营养”弹框中无响应,需要一个实际获得焦点的输入控件承接系统文本输入链路。

目标

方案比较

方案 A:隐藏输入框并保留按键链路兜底(采用)

隐藏 EditText 负责27寸主输入路径,现有 KeyboardWedgeScannerHub 负责失焦兜底,兼容文本输入和硬件按键两类派发方式。

方案 B:可见输入框

会改变布局并暴露个人动态付款码,不采用。

方案 C:继续仅依赖全局按键拦截

当前真机已经无响应,无法覆盖文本输入链路,不采用。

组件设计

隐藏输入控件

键盘模拟扫码控制器

KeyboardWedgeScannerController 负责输入框和 Hub 的完整生命周期。启动时清空、启用、禁止软键盘、注册监听并请求焦点;收到回车后先停止两条输入路径,再回调完整付款码;停止时解除监听、清空文本、清除焦点并禁用输入框。

识别弹框

FaceRecognitionPop 在键盘模拟模式下把隐藏输入框传给控制器;串口模式继续使用 SerialPaycodeScannerController。现有 resolvePaycode() 继续负责停扫、查询和跳转。

数据流

  1. 扫码枪向隐藏输入框写入字符并发送回车。
  2. 控制器读取非空文本,并在回调前停止输入框与 Hub。
  3. 识别弹框取得单次请求执行权并查询人员。
  4. 成功时进入营养报告;失败时提示并关闭弹框。

焦点与异常处理

测试与验证

范围外事项