首页点击“我的营养”后,识别弹框同时支持人脸识别和串口付款码扫码。当前扫码请求失败后会释放单次请求状态,而扫码器仍保持工作,扫码枪可能再次上报同一付款码,导致重复网络请求。
在 FaceRecognitionPop.resolvePaycode() 中保留 IdentityResolutionSession.tryStartPaycodeRequest() 作为请求门禁。门禁成功后,在更新查询状态和发起网络请求之前立即调用 stopPaycodeScanner()。
SerialPaycodeScannerController.stop() 已负责将运行状态设为关闭、移除延迟收尾任务、重置扫码帧缓冲区、关闭串口并清空监听器。因此不新增重复扫码状态、不增加超时任务,也不改扫码协议层。
网络失败回调继续显示 Toast,随后关闭弹框。关闭弹框沿用现有生命周期清理逻辑,不自动重启扫码器。
tryStartPaycodeRequest() 成功取得单次请求执行权。:app:testDebugUnitTest assembleDebug。