主要改动(与 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>
11 lines
290 B
Kotlin
11 lines
290 B
Kotlin
package com.duooomi.ble.demo
|
|
|
|
/**
|
|
* Copy this file to `DemoSecrets.kt` (gitignored) and fill in real credentials.
|
|
*/
|
|
object DemoSecrets {
|
|
const val API_KEY: String = "<paste-api-key>"
|
|
const val OWNER: String = "<paste-owner>"
|
|
const val SCAN_NAME_PREFIX: String = "Duooomi-"
|
|
}
|