结论:在“设置 → 一卡通设置”新增“读卡器调试”,可依次手动执行连接读卡器、寻卡和读卡,并展示卡片信息及原始响应;调试过程不会触发消费或扣款。
UC-READER-DEBUG-001 / Done / READYconnect、findCard、readCard 和 disconnect,不装配订单、不调用 consume,因此不会发送扣款指令。SetOnecardFragment 增加“读卡器调试”设置项并管理调试弹框生命周期。OnecardReaderDebugDialog,提供“连接读卡器、寻卡、读卡”三个明确操作及可滚动、可选择的结果区域。OnecardReaderDebugController,复用 NewcapecUsbCardReader,负责 USB 设备发现、权限结果、单线程 I/O、独立读卡日志会话、拔出监听和关闭释放。ReaderDebugCommandGate 与 ReaderDebugOperation,集中约束命令顺序和重复点击,避免 UI 自行维护分散状态。JAVA_HOME=$(/usr/libexec/java_home -v 1.8) bash gradlew :app:testDebugUnitTest --tests com.zhct.traybinding.onecard.reader.ReaderDebugCommandGateTest,4 个测试,0 failure、0 error、0 skipped。JAVA_HOME=$(/usr/libexec/java_home -v 1.8) bash gradlew :app:testDebugUnitTest --rerun-tasks,210 个测试中 207 个通过、3 个失败。失败均为既有 CustomerFullFetchServiceTest 分页断言仍按 1000,而当前实现按 2000;本次未修改该范围。
JAVA_HOME=$(/usr/libexec/java_home -v 1.8) bash gradlew :app:assembleDebug,构建成功。app/build/outputs/apk/debug/app-debug.apk,大小 67048780 字节,SHA-256 5e0bc41c8a2edfe8ad4a4a5710656296adc59246845a874f45703f0c7f51482d。本次未执行暂存、提交、推送、拉取、分支切换或其他 Git 写操作;工作区内原有的一卡通服务器相关修改保持不变。