鸿蒙开发设备管理:【@ohos.update (升级)】

news2025/1/18 20:25:43

升级

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]版本类型
descriptionIdstringHarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿版本描述信息

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

DescriptionInfo

版本描述信息。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1894771.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Build a Large Language Model (From Scratch)附录B(gpt-4o翻译版)

来源&#xff1a;https://github.com/rasbt/LLMs-from-scratch?tabreadme-ov-file https://www.manning.com/books/build-a-large-language-model-from-scratch

上海-灵曼科技(面经)

上海-灵曼科技 hr电话面 个人简介 个人信息的询问 是否知道芋道框架 技术面 算法题 14. 最长公共前缀&#xff08;写出来即可&#xff09; 聊一下Docker Docker核心概念总结Docker实战 聊一下AOP Spring AOP详解 聊一下JWT JWT 基础概念详解JWT 身份认证优缺点分析 Spri…

智能猫砂盆到底哪家好用?自费实测聚宠、糯雪、CEWEY真实反馈!

快到夏天了&#xff0c;是不是还有人因为没挑选到喜欢的智能猫砂盆而苦恼着&#xff1f;太便宜怕不好用&#xff0c;太贵怕质量比不上价格。来来去去拖到现在还没决定&#xff0c;我作为养了四年猫的资深铲屎官&#xff0c;今天就来给大家传授经验&#xff0c;关于我是怎么从好…

记录通过Cloudflare部署属于自己的docker镜像源

引言 由于最近国内无法正常拉取docker镜像&#xff0c;然而找了几个能用的docker镜像源发现拉取回来的docker镜像不是最新的版本&#xff0c;部署到Cloudflare里Workers 和 Pages&#xff0c;拉取docker 镜像成功&#xff0c;故记录部署过程。 部署服务 登录Cloudflare后&…

Xilinx FPGA:vivado关于RAM的一些零碎的小知识

一、xilinx fpga嵌入式存储单元 RAM----随机存取存储器&#xff1a;上电工作时可以随时从任何一个指定的地址写入&#xff08;存入&#xff09;或读出&#xff08;取出&#xff09;信息。缺点是一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时性存储程序、数…

openlayers中区域掩膜的实现

概述 在前文完成了mapboxGL中区域掩膜的实现。近日有人问到说在openlayers中如何实现&#xff0c;本文就带大家看看如何在openlayers中实现区域掩膜。 实现效果 实现 1. 实现思路 在地图容器中添加一个canvas&#xff0c;设置其在map之上&#xff1b;监听map的postrender事…

1-认识网络爬虫

1.什么是网络爬虫 ​ 网络爬虫&#xff08;Web Crawler&#xff09;又称网络蜘蛛、网络机器人&#xff0c;它是一种按照一定规则&#xff0c;自动浏览万维网的程序或脚本。通俗地讲&#xff0c;网络爬虫就是一个模拟真人浏览万维网行为的程序&#xff0c;这个程序可以代替真人…

在虚拟仿真中学习人工智能,可以达到什么目标?

人工智能已经成为引领社会创新的关键力量&#xff0c;想要在这个充满机遇的领域中脱颖而出&#xff0c;掌握扎实的专业技能和积累丰富的实践经验至关重要。然而&#xff0c;许多学习者在追求这一目标的过程中面临着几个主要问题&#xff1a;专业技术掌握有难度、实践经验积累存…

【算法训练记录——Day41】

Day41——动态规划Ⅲ 1.理论基础——代码随想录2.纯01背包_[kamacoder46](https://kamacoder.com/problempage.php?pid1046)3.leetcode_416分割等和子集 背包&#xff01;&#xff01; 1.理论基础——代码随想录 主要掌握01背包和完全背包 物品数量&#xff1a; 只有一个 ——…

(十三)MipMap

MipMap概念 滤波 采样 mipmap级别判定 问题&#xff1a;opengl如何判定应该使用下一级的mipmap呢&#xff1f; 通过glsl中的求偏导函数计算变化量决定 手动实现mipmap原理 1、生成mipmap的各个级别 2、修改vertexShader使得三角形随着时间变小 **** 需要更改Filter才能…

如何在操作使用ufw设置防火墙

UFW&#xff08;简单防火墙&#xff09;是用于管理iptables防火墙规则的用户友好型前端。它的主要目标是使iptables的管理更容易。 在学习Linux的时候大家一般都会关心命令&#xff0c;Posix API和桌面等&#xff0c;很少会去了解防护墙。其实除了一些网络安全厂商提供的付费防…

Zabbix 配置MySQL数据库监控

Zabbix MySQL数据库监控简介 通过 Zabbix 监控 MySQL 数据库&#xff0c;可以获取有关数据库性能、运行状况和资源使用情况的详细信息&#xff0c;帮助及时发现和解决问题。 Zabbix官方提供了一个名为MySQL by Zabbix agent的监控模板&#xff0c;该模板专为 Zabbix 通过 Zabb…

波动方程 - 在三维图中动态显示二维波动方程的解就像水面波澜起伏

波动方程 - 在三维图中动态显示二维波动方程的解就像水面波澜起伏 flyfish 波动方程的求解结果通常不是一个单一的数值&#xff0c;而是一个函数或一组函数&#xff0c;这些函数描述了波随时间和空间的传播情况。具体来说&#xff0c;波动方程的解可以是关于时间和空间变量的…

技术驱动旅游创新!深度解析景区导览小程序的地图渲染与AR导航技术

随着现代生活节奏的加快&#xff0c;人们在外出旅游时更倾向于轻便出行&#xff0c;携带导览地图已成为过去。然而&#xff0c;面对景区广阔的面积和众多景点&#xff0c;游客常常感到迷茫&#xff0c;难以快速定位到自己所需的地点。景区导览小程序让游客只需搜索景区名称&…

PyQT: 开发一款ROI绘制小程序

在一些基于图像或者视频流的应用中&#xff0c;比如电子围栏/客流统计等&#xff0c;我们需要手动绘制一些感兴趣&#xff08;Region of Interest&#xff0c;简称ROI&#xff09;区域。 在这里&#xff0c;我们基于Python和PyQt5框架开发了一款桌面应用程序&#xff0c;允许用…

谷粒商城学习笔记-05-项目微服务划分图

文章目录 一&#xff0c;商城业务服务-前端服务二&#xff0c;商城业务服务-后端服务三&#xff0c;存储服务四&#xff0c;第三方服务五&#xff0c;服务治理六&#xff0c;日志七&#xff0c;监控预警系统1&#xff0c;Prometheus2&#xff0c;Grafana3&#xff0c;Prometheu…

TSINGSEE智能分析网关V4人员区域徘徊AI检测:算法原理介绍及技术应用场景

一、引言 在现代社会&#xff0c;随着科技的不断发展&#xff0c;视频监控系统已广泛应用于各个领域&#xff0c;如公共安全、商业管理、交通监控等。其中&#xff0c;区域徘徊检测算法作为一种重要的视频分析技术&#xff0c;能够有效地识别出特定区域内人员的徘徊行为&#…

LLMs之gpt_academic:gpt_academic的简介、安装和使用方法、案例应用之详细攻略

LLMs之gpt_academic&#xff1a;gpt_academic的简介、安装和使用方法、案例应用之详细攻略 目录 gpt_academic的简介 1、版本更新历史 版本: 1、新增功能及其描述 新界面&#xff08;修改config.py中的LAYOUT选项即可实现“左右布局”和“上下布局”的切换&#xff09; 所…

SpringBoot开发细节

1.✨前后端时间不一致 解决方法1&#xff1a;在实体类属性上添加 JsonFormat(pattern "yyyy-MM-dd HH:mm:ss", timezone "GMT8")解决方法2&#xff1a;springboot配置文件中 spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT82.定义返回…

电商数据仓库

1.数据仓库的数据来源为业务数据库&#xff08;mysql&#xff09; 2.通过sqoop将mysql中的业务数据导入到大数据平台&#xff08;hive&#xff09; 3.通过hive进行数据计算和数据分析 形成数据报表 4.再通过sqoop将数据报表导出到mysql 5.使用FineReport制作数据报表 1.数据…