Files
duooomi-android-sdk/docs/DemoSecrets.template.kt
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

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-"
}