fix:sdk增加判断是否需要更新的方法

This commit is contained in:
km2023
2026-04-13 18:36:59 +08:00
parent d655b13416
commit 18c6f5e098
2 changed files with 17 additions and 0 deletions

View File

@@ -171,6 +171,13 @@ sdk.transferProgress.collect { percent -> /* 0-100 */ }
val firmware = sdk.fetchLatestFirmware(identifier, status)
// firmware?.version, firmware?.fileUrl, firmware?.fileSize
// 检查是否有新版本 (对比版本号末尾10位时间戳)
val needUpdate = sdk.hasNewerFirmware(
deviceVersion = sdk.version.value, // 当前设备版本
serverVersion = firmware?.version // 服务端最新版本
)
// 参数为空/null/格式不合法时返回 false
// 执行 OTA 升级
sdk.upgradeFirmware(firmware.fileUrl)
```

View File

@@ -479,6 +479,16 @@ class DuooomiBleSDK(context: Context, val config: DuooomiBleConfig) {
} ?: BleLog.w("No pending continuation for opId=$opId", "RPC")
}
// MARK: - Version Check
fun hasNewerFirmware(deviceVersion: String?, serverVersion: String?): Boolean {
if (deviceVersion.isNullOrEmpty() || serverVersion.isNullOrEmpty()) return false
if (deviceVersion.length < 10 || serverVersion.length < 10) return false
val deviceTs = deviceVersion.takeLast(10).toLongOrNull() ?: return false
val serverTs = serverVersion.takeLast(10).toLongOrNull() ?: return false
return serverTs > deviceTs
}
// MARK: - Helpers
private fun ensureConnected() {