0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发设备管理:ohos.update 升级

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-07-05 09:33 次阅读

升级

icon-note.gif说明: 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

升级范围:升级整个系统,包括内置的资源、预置应用;第三方的应用不在升级的范围。

升级依赖:升级分为SD卡升级和在线升级两种。

  • SD卡升级依赖升级包和SD卡安装。
  • 在线升级依赖设备厂商部署的用于管理升级包的服务器。服务器由设备厂商部署,IP由调用者传入,请求的request接口是固定的,由设备厂商开发。

导入模块

import update from '@ohos.update'

权限列表

update.getUpdater

getUpdater(upgradeFile: string, updateType?: UpdateTypes): Updater

获取本地升级Updater。

系统能力 :SystemCapability.Update.UpdateService

参数

参数名类型必填说明
upgradeFilestring升级文件
updateType[UpdateTypes]升级类型

返回值:

类型说明
[Updater]升级对象

示例:

try {
  let updater = update.getUpdater('/data/updater/updater.zip', 'OTA');
} catch(error) {
  console.error(" Fail to get updater error: " + error);
}

update.getUpdaterForOther

getUpdaterForOther(upgradeFile: string, device: string, updateType?: UpdateTypes): Updater

获取升级对象给待升级设备。

系统能力 :SystemCapability.Update.UpdateService

参数:

参数名类型必填说明
upgradeFilestring升级文件
devicestring待升级设备
updateType[UpdateTypes]升级类型

返回值:

类型说明
[Updater]升级对象

示例:

try {
  let updater = update.getUpdaterForOther('/data/updater/updater.zip', '1234567890', 'OTA');
} catch(error) {
  console.error(" Fail to get updater error: " + error);
}

update.getUpdaterFromOther

getUpdaterFromOther(upgradeFile: string, device: string, updateType?: UpdateTypes): Updater

获取其它设备为本设备升级的Updater。

系统能力 :SystemCapability.Update.UpdateService

参数:

参数名类型必填说明
upgradeFilestring升级文件
devicestring待升级设备
updateType[UpdateTypes]升级类型

返回值:

类型说明
[Updater]升级对象

示例:

try {
  let updater = update.getUpdaterFromOther('/data/updater/updater.zip', '1234567890', 'OTA');
} catch(error) {
  console.error(" Fail to get updater error: " + error);
}

Updater

getNewVersionInfo

getNewVersionInfo(callback: AsyncCallback): void

获取新版本信息,使用callback方式作为异步方法。

系统能力 :SystemCapability.Update.UpdateService

参数:

参数名类型必填说明
callbackAsyncCallback<[NewVersionInfo]>回调返回新版本信息

示例:

updater.getNewVersionInfo((err, info) = > {
  console.log("getNewVersionInfo success  " + info.status);
  console.log(`info versionName = ` + info.checkResults[0].versionName);
  console.log(`info versionCode = ` + info.checkResults[0].versionCode);
  console.log(`info verifyInfo = ` + info.checkResults[0].verifyInfo);
});

getNewVersionInfo

getNewVersionInfo(): Promise

获取新版本信息,使用promise方式作为异步方法。

系统能力 :SystemCapability.Update.UpdateService

返回值:

类型说明
Promise<[NewVersionInfo]>Promise,用于异步获取结果

示例:

updater.getNewVersionInfo().then(value = > {
  console.log(`info versionName = ` + value.checkResults[0].versionName);
  console.log(`info versionCode = ` + value.checkResults[0].versionCode);
  console.log(`info verifyInfo = ` + value.checkResults[0].verifyInfo);
}).catch(err = > {
  console.log("getNewVersionInfo promise error: " + err.code);
});

checkNewVersion

checkNewVersion(callback: AsyncCallback): void

检查新版本,使用callback方式作为异步方法。

系统能力 :SystemCapability.Update.UpdateService

参数:

参数名类型必填说明
callbackAsyncCallback<[NewVersionInfo]>回调返回新版本信息

示例:

updater.checkNewVersion((err, info) = > {
  console.log("checkNewVersion success  " + info.status);
  console.log(`info versionName = ` + info.checkResults[0].versionName);
  console.log(`info versionCode = ` + info.checkResults[0].versionCode);
  console.log(`info verifyInfo = ` + info.checkResults[0].verifyInfo);
});

checkNewVersion

checkNewVersion(): Promise

检查新版本,使用promise方式作为异步方法。

系统能力 :SystemCapability.Update.UpdateService

返回值:

类型说明
Promise<[NewVersionInfo]>Promise函数返回新版本信息

示例:

updater.checkNewVersion().then(value = > {
  console.log(`info versionName = ` + value.checkResults[0].versionName);
  console.log(`info versionCode = ` + value.checkResults[0].versionCode);
  console.log(`info verifyInfo = ` + value.checkResults[0].verifyInfo);
}).catch(err = > {
  console.log("checkNewVersion promise error: " + err.code);
});

verifyUpdatePackage

verifyUpdatePackage(upgradeFile: string, certsFile: string): void

升级前检查升级包是否有效。

系统能力 :SystemCapability.Update.UpdateService

参数:

参数名类型必填说明
upgradeFilestring待校验的升级包路径
certsFilestring证书路径

示例:

updater.on("verifyProgress", callback = > {
  console.info('on verifyProgress ' + callback.percent);
});
update.verifyUpdatePackage("XXX", "XXX");

rebootAndCleanUserData8+

rebootAndCleanUserData(): Promise

重启设备并清除用户分区数据。

系统能力 :SystemCapability.Update.UpdateService

返回值:

类型说明
PromisePromise示例,用于异步获取结果。

示例:

updater.rebootAndCleanUserData().then(result = > {
  console.log("rebootAndCleanUserData " + result);
}).catch(err = > {
  console.info("rebootAndCleanUserData promise error: " + err.code);
});

rebootAndCleanUserData8+

rebootAndCleanUserData(callback: AsyncCallback): void

重启设备并清除用户分区数据。

系统能力 :SystemCapability.Update.UpdateService

参数:

参数名类型必填说明
callbackFunctionAsyncCallback

示例:

updater.rebootAndCleanUserData((err, result) = > {
  console.log("rebootAndCleanUserData ", result)
});

applyNewVersion

applyNewVersion(): Promise

重启设备后安装升级包。

系统能力 :SystemCapability.Update.UpdateService

返回值:

类型说明
PromisePromise示例,用于异步获取结果。

示例:

updater.applyNewVersion().then(result = > {
    console.log("appVewVersion ", result)
}).catch(err = > {
    console.info("applyNewVersion promise error: " + err.code);
});

applyNewVersion

applyNewVersion(callback: AsyncCallback): void

重启设备后安装升级包。

系统能力 :SystemCapability.Update.UpdateService

参数:

参数名类型必填说明
callbackFunctionAsyncCallback

示例:

updater.applyNewVersion((err, result) = > {
  console.log("applyNewVersion ", result)
});

download

download(): void

下载新版本,并监听下载进程。

系统能力 :SystemCapability.Update.UpdateService

示例:

updater.on("downloadProgress", progress = > {
  console.log("downloadProgress on" + progress);
  console.log(`downloadProgress status: ` + progress.status);
  console.log(`downloadProgress percent: ` + progress.percent);
});
updater.download();

upgrade

upgrade():void

启动升级。

系统能力 :SystemCapability.Update.UpdateService

示例:

updater.on("upgradeProgress", progress = > {
  console.log("upgradeProgress on" + progress);
  console.log(`upgradeProgress status: ` + progress.status);
  console.log(`upgradeProgress percent: ` + progress.percent);
});
updater.upgrade();

setUpdatePolicy

setUpdatePolicy(policy: UpdatePolicy, callback: AsyncCallback): void

设置升级策略,使用callback方式作为异步方法。

系统能力 :SystemCapability.Update.UpdateService

参数:

参数名类型必填说明
policy[UpdatePolicy]设置升级策略
callbackAsyncCallback回调返回结果

示例:

// 设置策略
let policy = {
  autoDownload: false,
  autoDownloadNet: true,
  mode: 2,
  autoUpgradeInterval: [ 2, 3 ],
  autoUpgradeCondition: 2
}
updater.setUpdatePolicy(policy, (err, result) = > {
  console.log("setUpdatePolicy ", result)
});

setUpdatePolicy

setUpdatePolicy(policy: UpdatePolicy): Promise

设置升级策略,使用promise方式作为异步方法。

系统能力 :SystemCapability.Update.UpdateService

参数:

参数名类型必填说明
policy[UpdatePolicy]设置升级策略

返回值:

类型说明
PromisePromise函数返回设置结果

示例:

let policy = {
  autoDownload: false,
  autoDownloadNet: true,
  mode: 2,
  autoUpgradeInterval: [ 2, 3 ],
  autoUpgradeCondition: 2
}
updater.setUpdatePolicy(policy).then(result = > 
  console.log("setUpdatePolicy ", result)
).catch(err = > {
  console.log("setUpdatePolicy promise error: " + err.code);
});

getUpdatePolicy

getUpdatePolicy(callback: AsyncCallback): void

获取升级策略信息,使用callback方式作为异步方法。

系统能力 :SystemCapability.Update.UpdateService

参数:

参数名类型必填说明
callbackAsyncCallback<[UpdatePolicy]>回调返回升级策略信息

示例:

updater.getUpdatePolicy((err, policy) = > {
  console.log("getUpdatePolicy success");
  console.log(`policy autoDownload = ` + policy.autoDownload);
  console.log(`policy autoDownloadNet = ` + policy.autoDownloadNet);
  console.log(`policy mode = ` + policy.mode);
});

getUpdatePolicy

getUpdatePolicy(): Promise

获取升级策略,通过promise方式作为异步方法。

系统能力 :SystemCapability.Update.UpdateService

返回值:

类型说明
Promise<[UpdatePolicy]>Promise函数返回升级策略信息

示例:

updater.getUpdatePolicy().then(value = > {
  console.log(`info autoDownload = ` + value.autoDownload);
  console.log(`info autoDownloadNet = ` + value.autoDownloadNet);
  console.log(`info mode = ` + value.mode);
}).catch(err = > {
  console.log("getUpdatePolicy promise error: " + err.code);
});

UpdateTypes

升级类型。

系统能力 :以下各项对应的系统能力均为:SystemCapability.Update.UpdateService

参数名说明
OTAOTA升级
patch补丁升级

PackageTypes

升级包类型。

系统能力 :以下各项对应的系统能力均为:SystemCapability.Update.UpdateService

参数名默认值说明
PACKAGE_TYPE_NORMAL1通用升级包
PACKAGE_TYPE_BASE2基础升级包
PACKAGE_TYPE_CUST3定制升级包
PACKAGE_TYPE_PRELOAD4预装升级包
PACKAGE_TYPE_COTA5参数配置升级包
PACKAGE_TYPE_VERSION6版本升级包
PACKAGE_TYPE_PATCH7补丁包

InstallMode

安装模式。

系统能力 :以下各项对应的系统能力均为:SystemCapability.Update.UpdateService

参数名默认值说明
INSTALL_MODE_NORMAL0正常升级
INSTALL_MODE_NIGHT1夜间升级
INSTALL_MODE_AUTO2自动升级

NewVersionStatus

新版本检测状态。

系统能力 :以下各项对应的系统能力均为:SystemCapability.Update.UpdateService

参数名默认值说明
VERSION_STATUS_ERR-1检测版本时出错
VERSION_STATUS_NEW0检测到新版本
VERSION_STATUS_NONE1没有检测到新版本
VERSION_STATUS_BUSY2检测版本时忙

UpdatePolicy

升级策略。

系统能力 :以下各项对应的系统能力均为:SystemCapability.Update.UpdateService

名称参数类型必填说明
autoDownloadbool自动升级开关
installMode[InstallMode]安装模式
autoUpgradeIntervalArray自动升级时间段

NewVersionInfo

新版本信息。

系统能力 :以下各项对应的系统能力均为:SystemCapability.Update.UpdateService

名称参数类型必填说明
status[NewVersionStatus]升级状态
errMsgstring错误信息
checkResultsArray<[CheckResult]>检测结果
descriptionInfoArray<[DescriptionInfo]>描述信息

CheckResult

检测结果。

系统能力 :以下各项对应的系统能力均为:SystemCapability.Update.UpdateService

名称参数类型必填说明
versionNamestring版本名称
versionCodenumber版本编码
sizenumber版本大小
verifyInfostring版本校验信息
packageType[PackageTypes]版本类型
descriptionIdstringHarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿版本描述信息

搜狗高速浏览器截图20240326151450.png

DescriptionInfo

版本描述信息。

系统能力 :以下各项对应的系统能力均为:SystemCapability.Update.UpdateService

名称参数类型必填说明
descriptionIdstring版本versionId信息
contentstring版本changelog信息

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    57

    文章

    2272

    浏览量

    42528
收藏 人收藏

    评论

    相关推荐

    设备管理系统软件有哪些

    设备管理系统软件有哪些,下面是 设备管理软件功能摘要的NLP颜色标记版,欢迎对比查看素版设备管理软件功能摘要,有想法反映留言,谢谢~~预测\color{#D2691E}预测预测性\color
    发表于 07-12 07:01

    基于.Net框架的设备管理系统的设计与实现

    设备管理系统是企业运营过程中必不可少的组成部分。本文以中国教育经济信息网管理中心设备管理系统为例,讨论了设备管理系统的设计与实现,并详细讨论了基于.Net框架的三
    发表于 08-28 09:02 28次下载

    面向预测性维护的制造工业设备管理系统

    为了解决制造业中工业设备管理混乱、维护成本高昂等问题,以工业机器人、数控车床等工业设备管理对象,开发面向预测性维护的设备管理系统。基于 S
    发表于 04-23 09:46 43次下载
    面向预测性维护的制造工业<b class='flag-5'>设备管理</b>系统

    设备管理云平台是什么?有什么功能?

    设备管理云平台:现代化企业的重要解决方案 随着科技的迅速发展和企业规模的扩大,设备数量和种类也随之增加,设备管理变得愈加复杂。传统的管理方法已经无法满足企业的需求,而
    的头像 发表于 09-20 16:39 1231次阅读

    基于RFID油井设备管理手持机的开发研究

    电子发烧友网站提供《基于RFID油井设备管理手持机的开发研究.pdf》资料免费下载
    发表于 10-23 09:35 0次下载
    基于RFID油井<b class='flag-5'>设备管理</b>手持机的<b class='flag-5'>开发</b>研究

    鸿蒙开发接口定制管理:【@ohos.enterpriseDeviceManager (企业设备管理)】

    以异步方法根据给定的包名和类名激活设备管理员应用,使用Callback形式返回是否激活成功。
    的头像 发表于 06-05 09:24 422次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>接口定制<b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.enterpriseDeviceManager (企业<b class='flag-5'>设备管理</b>)】

    鸿蒙开发设备管理ohos.deviceInfo 设备信息

    面向特定开发者发布的早期预览版本,不承诺API稳定性。 - Beta:面向开发者公开发布的Beta版本,不承诺API稳定性。
    的头像 发表于 07-01 16:33 389次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>设备管理</b>:<b class='flag-5'>ohos</b>.deviceInfo <b class='flag-5'>设备</b>信息

    鸿蒙开发设备管理ohos.multimodalInput.inputDevice 输入设备

    输入设备管理模块,用于监听输入设备连接、断开和变化,并查看输入设备相关信息。比如监听鼠标插拔,并获取鼠标的id、name和指针移动速度等信息。
    的头像 发表于 07-01 09:19 232次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>设备管理</b>:<b class='flag-5'>ohos</b>.multimodalInput.inputDevice 输入<b class='flag-5'>设备</b>

    鸿蒙开发设备管理ohos.multimodalInput.inputEvent 输入事件

    InputEvent模块描述了设备上报的基本事件。
    的头像 发表于 07-02 17:44 170次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>设备管理</b>:<b class='flag-5'>ohos</b>.multimodalInput.inputEvent 输入事件

    鸿蒙开发设备管理ohos.multimodalInput.keyCode 键值

    KeyCode模块提供了按键类设备的键值。
    的头像 发表于 07-01 22:14 211次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>设备管理</b>:<b class='flag-5'>ohos</b>.multimodalInput.keyCode 键值

    鸿蒙开发设备管理ohos.thermal 热管理

    该模块提供热管理相关的接口,包括热档位查询及注册回调等功能。
    的头像 发表于 07-05 09:53 182次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>设备管理</b>:<b class='flag-5'>ohos</b>.thermal 热<b class='flag-5'>管理</b>

    鸿蒙开发设备管理ohos.usb USB管理

    本模块主要提供管理USB设备的相关功能,包括查询USB设备列表、批量数据传输、控制命令传输、权限控制等。
    的头像 发表于 07-05 17:34 442次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>设备管理</b>:<b class='flag-5'>ohos</b>.usb USB<b class='flag-5'>管理</b>

    设备管理系统:是什么、谁需要、推荐设备管理系统

    设备管理系统(EMS)在企业管理中愈发重要。中设智控设备管理系统以全生命周期管理为主,涵盖预算、采购、维护等功能,支持移动端应用,降低备件储备,提高
    的头像 发表于 08-01 11:23 268次阅读
    <b class='flag-5'>设备管理</b>系统:是什么、谁需要、推荐<b class='flag-5'>设备管理</b>系统

    设备管理流程优化的优势

    设备管理对企业生产效率、产品质量、成本控制和安全生产起着关键作用。但设备管理面临挑战,如种类繁多、数量庞大、位置分散等。因此,企业应采用科学的设备管理方法,建立设备管理系统,跟踪
    的头像 发表于 09-05 10:34 157次阅读
    <b class='flag-5'>设备管理</b>流程优化的优势

    基于物联网的设备管理

    物联网设备管理的重要性日益凸显,设备数量激增带来数据泄露风险。加强设备安全性、软件升级与修复、身份验证和互操作性是关键。物联网设备管理需要跨
    的头像 发表于 09-10 11:04 459次阅读
    基于物联网的<b class='flag-5'>设备管理</b>