km2023
417012c49f
feat(demo): 对齐 iOS demo 布局 + Info+Ver 并发按钮
...
主要改动:
- DemoSecrets 默认值对齐 iOS:owner=xmly, scanNamePrefix=Duooomi-
- userId 默认值对齐:Cjgex9kTTTJq9u9RMOnc5hiIZTvrOOq3
- Config 区可在运行时编辑 owner/apiKey/scanPrefix,SharedPreferences
持久化;Reload SDK 按钮重建实例(旧 SDK 自动 disconnect)
- PlayMode 行:显示当前模式标签(循环 / 单播)+ Single/Loop 按钮
- Firmware OTA:3 个独立输入(sn/currentVersion/userId) +「回填当前
状态」+「拉取安装包」+「安装」三按钮,对齐 iOS WrapperTestView
- bind 完成 / version 更新自动回填 OTA 入参
- UpgradeRecords 4 状态展示:待上报 / ✅ 正确上报 / ❌ 错误上报
(版本不匹配) / 过期放弃
- 保留先前加的 Info+Ver 并发按钮(async 同时发 getDeviceInfo +
getVersion,验证不同 commandType 通道并发不冲突)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-08 16:03:54 +08:00
km2023
2dde274578
feat(sdk): OTA 升级流程对齐 expo + 秘钥本地化
...
主要改动(与 iOS SDK 1:1 对齐):
- 新增 fetchLatestFirmware/upgradeFirmware/tryReportPendingUpgrade
三段 OTA 接口,对齐 expo bindDeviceWithOrchestration 行为
- bind 仅做硬绑+getVersion,软绑/对账上报/拉最新固件搬到
fetchLatestFirmware 内部串;软绑失败自动硬解回滚
- unbind 改胖:硬解 + 软解(容错失败仅 warn)
- UpgradeRecord 复合主键 (sn, firmwareId) 持久化(SharedPreferences)
+ sn 级 in-flight 互斥
- 新增 sn / firmwareUpgrade / upgradeRecords StateFlow,集成方
可观察对账上报结果(reported/outcome 状态)
- DuooomiBleConfig:删 firmwareIdentifier/firmwareStatus,
改 owner/scanNamePrefix 为必填字段
- 新增 ShipmentSnDeviceService(软绑/软解 HTTP)+
FirmwareUpgradeService(checkUpgrade/reportSuccess/reportFailure)
+ HttpHelper 共享 POST 工具
- 删 FirmwareInfo + FirmwareService + hasNewerFirmware(旧 API)
- 新增 FirmwareUpgradeCheckResult 模型(含 forceUpgrade 字段)
- BleClient 增加 service UUID 列表 log,便于固件兼容调试
- demo 秘钥移至本地 DemoSecrets.kt(gitignored),模板放 docs/
- demo 改造到新 OTA 流程 + 升级记录展示
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-08 15:42:04 +08:00
km2023
43be8989f4
Add implementation plan for Android BLE SDK
...
14 tasks covering: Gradle scaffolding, types, protocol, models, config,
BleClient, services, public API facade, README.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-10 16:37:53 +08:00
km2023
97aaa6d454
Add Android BLE SDK design spec
...
1:1 feature parity with iOS DuooomiBleSDK, pure Kotlin, zero third-party deps.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-10 16:33:05 +08:00