fix:sdk增加判断是否需要更新的方法
This commit is contained in:
@@ -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)
|
||||
```
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user