人脸相机 UVC 与支付 Camera2 对应方案

1. 方案状态

2. 问题与根因

“设置 → 相机设置”中的人脸相机使用 UVC 枚举、切换和预览,保存的是 UVC VID/PID;人脸支付及支付测试仍通过 CameraX/Camera2 获取帧,读取 Camera2 ID。

两条链路使用不同的相机标识,原实现只保存 UVC ID,没有同步支付链路读取的 Camera2 ID,因此设置页虽然能正确预览,支付时仍可能打开旧相机或错误相机。

3. 对应关系

通过设备 sysfs 的 USB VID/PID、/dev/videoN 节点以及 Camera2 外部相机编号规则完成物理核验:

摄像头名称UVC VID/PID视频节点Camera2 ID
USB2.0_CAM111391_19040/dev/video0100
USB 2.0 Camera3141_25440/dev/video2102
MC-500U1374_41357/dev/video28128

当前设备的 Camera2 外部相机 ID 为 100 + video 节点编号

4. 落地设计

4.1 设置页双键保存

用户选择人脸相机时同时保存:

4.2 启动自动迁移

应用启动时根据已保存的 face_uvc_camera_id 重新计算并同步 face_camera_id。已有安装不需要用户重新进入设置页选择,相机对应关系即可自动修正。

4.3 兼容与保护

5. 代码范围

6. 验收结果

7. 边界与后续

本映射以当前 FY-3576SE 的固定 USB 拓扑为准。如果硬件型号、USB 接口或内核视频节点分配发生变化,需要重新核验 /dev/videoN 并更新映射表。