“设置 → 相机设置”中的人脸相机已经改为 UVC 枚举和预览,保存键为 face_uvc_camera_id;正式人脸支付和支付测试仍通过 CameraX/Camera2 打开相机,读取旧键 face_camera_id。因此设置页选择的物理摄像头没有同步到支付链路。
设备现场确认设置页保存 UVC VID/PID,而支付链路只读取 Camera2 ID,需要在保存时同步两个键。
11391_19040 → 1003141_25440 → 1021374_41357 → 128FaceCameraSettings.setUvcCameraId() 同步保存对应的 face_camera_id。采用测试先行:
:app:testDebugUnitTest 与 :app:assembleDebug --rerun-tasks,94 个任务全部完成,结果为 BUILD SUCCESSFUL。设备验证:
USB2.0_CAM1 (11391/19040) 后:face_uvc_camera_id = 11391_19040,face_camera_id = 100。USB 2.0 Camera (3141/25440) 后:face_uvc_camera_id = 3141_25440,face_camera_id = 102。USB2.0_CAM1 位于 /dev/video0,外部 Camera2 ID 为 100。USB 2.0 Camera 位于 /dev/video2,外部 Camera2 ID 为 102。MC-500U 位于 /dev/video28,外部 Camera2 ID 为 128。本次仅增加当前固定硬件的 UVC/Camera2 ID 映射,并同步人脸相机配置。正式支付和支付测试继续复用现有 CameraX 人脸帧处理链路;未修改人脸识别算法、菜品识别算法、支付接口、相机冲突拦截或 Git 历史。