后续补充:用户确认重新初始化后发生的 PROTOCOL_ERROR,已由协议初始化失败再次提示变更记录纳入专用的“初始化失败”再次确认流程;普通读卡阶段的协议错误仍不提示连接异常。
结论:重新初始化确认框已收窄为“读卡器成功初始化后的连接异常”专用提示;设备未找到、权限拒绝、首次初始化失败以及卡片或业务错误不再触发该确认框。
UC-READER-REINIT-002 / Done / READYOPEN_FAILED、INTERFACE_NOT_FOUND、ENDPOINT_NOT_FOUND、CLAIM_FAILED、NOT_CONNECTED、IO_WRITE_FAILED、DEVICE_RECOVERY_FAILED、IO_TIMEOUT。ReaderInitializationRetryGate 增加成功初始化状态,只在 onReaderInitialized() 后允许连接异常弹框。onError() 回调统一解释为连接异常。ConsumptionActivity 移除设备未找到和权限拒绝回调中的重新初始化弹框调用。onDisconnected() 和白名单内的连接类 ReaderError 会申请展示确认框。onConnecting() 仅关闭过期提示,不再标记初始化成功;onSearching() 才标记初始化完成。ReaderInitializationRetryGateTest 7 个测试通过,覆盖初始化前拦截、非连接错误拦截、断开提示、连接错误白名单、防重复确认、取消恢复和初始化成功状态。JAVA_HOME=$(/usr/libexec/java_home -v 1.8) bash gradlew :app:testDebugUnitTest --rerun-tasks,202 个测试,0 failure、0 error、0 skipped。JAVA_HOME=$(/usr/libexec/java_home -v 1.8) bash gradlew :app:assembleDebug,构建成功。app/build/outputs/apk/debug/app-debug.apk,大小 67187505 字节,SHA-256 618eb8c3a23408efaa655fdde1a29e35a50125004479003268ddb596bc4f129e。本次未执行暂存、提交、推送、拉取、分支切换或其他 Git 写操作。