设备EPO升级
功能概述
Epo升级管理(v4.0.41及以上版本支持),用于控制epo自动、手动升级管理 。
IDOEpoManager
属性
enableAutoUpgrade
启用自动epo升级,默认为:关
status
当前升级状态 IDOEpoUpgradeStatus
isSupported
是否支持epo升级
delegateGetGps
app提供当前手机gps信息,用于设备快速定位,IDOEpoManagerDelegate
方法
lastUpdateTimestamp(completion:)
获取最后一次更新的时间戳,单位:毫秒
- Parameters:
- completion: 无记录则返回0
shouldUpdateForEPO(isForce:completion:)
是否需要更新
- Parameters:
- isForce: 强制更新
- completion: 完成回调
willStartInstall(isForce:retryCount:)
启动升级任务
- Parameters:
- isForce: 是否强制更新
- retryCount: 重试次数,默认不重试
stop()
停止升级任务
注:epo已传输到设备,设备正在执行升级中,这种情况无法中止
listenEpoUpgrade(funcStatus:downProgress:sendProgress:funcComplete:)
监听epo升级回调(全局监听一次)
- Parameters:
- funcStatus: 升级状态
- downProgress: 下载进度
- sendProgress:发送进度
- completion:完成回调
示例
Swift
// 1、初始化、配置和设置监听(全局监听一次)
IDOEpoManager.shared.enableAutoUpgrade = true // 打开自动升级(可选)
IDOEpoManager.shared.delegateGetGps = self
IDOEpoManager.shared.listenEpoUpgrade { status in
print("epo---- status:\(status)")
} downProgress: { progress in
print("epo---- down progress:\(progress)")
} sendProgress: { progress in
print("epo---- send progress:\(progress)")
} funcComplete: { errCode in
print("epo---- complete:\(errCode)")
}
// 2、代理实现
extension SomeClass: IDOEpoManagerDelegate{
func getAppGpsInfo() -> protocol_channel.IDOOtaGpsInfo? {
// !!!: 此处的经纬度是伪代码,实际场景需要使用手机定位到的坐标
return IDOOtaGpsInfo(longitude: 114.0579, latitude: 22.5431, altitude: 10)
}
}
// 3、手动执行epo升级(仅需要自动升级时,不用调用该方法)
IDOEpoManager.shared.willStartInstall(isForce: true, retryCount: 0)
Kotlin
// 1、初始化、配置和设置监听(全局监听一次)
IDOEpoManager.shared.enableAutoUpgrade = true // 打开自动升级(可选)
IDOEpoManager.shared.delegateGetGps = EpoListen()
IDOEpoManager.shared.listenEpoUpgrade(
{ status ->
println("epo---- status: $status")
},
{ progress ->
println("epo---- down progress: $progress")
},
{ progress ->
println("epo---- send progress: $progress")
},
{ errCode ->
println("epo---- complete: $errCode")
}
)
// 2、代理实现
inner class EpoListen : IDOEpoManagerDelegate {
override fun getAppGpsInfo(): IDOOtaGpsInfo {
// !!!: 此处的经纬度是伪代码,实际场景需要使用手机定位到的坐标
return IDOOtaGpsInfo(114.0579f, 22.5431f, 10.0f)
}
}
// 3、手动执行epo升级(仅需要自动升级时,不用调用该方法)
IDOEpoManager.shared.willStartInstall(isForce: true, retryCount: 0)