feat(sdk): 同步 iOS — upgradeFirmware 下发前校验电量 ≥40%,不足抛 BatteryTooLow
1:1 复刻 iOS:OTA 烧录前主动 getDeviceInfo 取实时电量,<40% 抛 DuooomiBleError.BatteryTooLow(current,required)、不发任何字节。 错误消息字符串与 iOS 逐字一致;新增 MIN_BATTERY_FOR_UPGRADE=40。 协程版线性实现(无 callback 拆分)。README 同步错误处理/升级段。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -223,6 +223,8 @@ sdk.upgradeFirmware(
|
||||
// OTA 包发完,设备开始烧录并重启
|
||||
```
|
||||
|
||||
> ⚠️ `upgradeFirmware` 下发前会**主动拉一次新鲜 `getDeviceInfo`** 校验实时电量,低于 40% 直接抛 `DuooomiBleError.BatteryTooLow`,**不发任何 OTA 字节**(防烧录中途断电变砖)。
|
||||
|
||||
### 错误处理
|
||||
|
||||
```kotlin
|
||||
@@ -238,6 +240,7 @@ try {
|
||||
catch (e: DuooomiBleError.AlreadyBoundByOtherUser) { /* 设备已绑给他人 */ }
|
||||
catch (e: DuooomiBleError.BrandMismatch) { /* 不支持该品牌设备(已自动断连) */ }
|
||||
catch (e: DuooomiBleError.FirmwareUpgradeUnavailable) { /* sn 为空等前置不满足 */ }
|
||||
catch (e: DuooomiBleError.BatteryTooLow) { /* OTA 前电量 < 40%,未下发任何字节;e.current / e.required 可读 */ }
|
||||
```
|
||||
|
||||
## 运行 Demo
|
||||
|
||||
Reference in New Issue
Block a user