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

升级

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.mzph.cn/pingmian/40690.shtml

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

相关文章

argparse大坑之parser

parser.add_argument(--rate,help"--rate 0.5 means that there is a 50% probability;",typefloat,default0.5)此时用-h输出usage会报错如下&#xff1a; 最后发现是因为parser的help里面出现了%&#xff0c;改了之后就好了。真坑啊&#xff01;

BeautifulSoup 类通过查找方法选取节点

BeautifulSoup 类提供了一些基于 HTML 或 XML 节点树选取节点的方法&#xff0c;其中比较主流 的两个方法是 find() 方法和 find_all() 方法。 find() 方法用于查找符合条件的第一个节点&#xff1b; find_all() 方法用于查找所有符合条件的节点&#xff0c;并以列表的…

新火种AI|AI搜索挑战百度谷歌,重塑信息检索的市场?

作者&#xff1a;一号 编辑&#xff1a;美美 AI正在颠覆传统的搜索引擎市场。 随着ChatGPT等大型语言模型的火爆&#xff0c;AI搜索技术成为了公众和业界关注的焦点。这些技术不仅能够提供快速、准确的信息检索&#xff0c;还能够通过自然语言处理技术理解用户的复杂查询&am…

typescript2-类的类型

/* 输出 吃饭 游泳 */ []( )继承与多态------------------------------------------------------------------------1. 子类继承父类特征子类 extends 父类2. 当需要父类参数传递时&#xff0c;用子类也可以&#xff0c;这就是多态/* 继承&#xff1a;子类继承父类 多态…

系统级应用锁的实现方法

前言: 应用锁是一种常见的需求&#xff0c; 下面提供一个个人认为还比较完美的解决方法。本篇从两个方面详述应用锁的实现方法。 一. 流程图 二. 实现细节 一.流程图 二. 实现效果及细节

【区块链+基础设施】蜀信链 | FISCO BCOS应用案例

蜀信链是在四川省经济和信息化厅指导下&#xff0c;在四川省区块链行业协会组织下&#xff0c;由全省区块链相关从业与应用机构 共同参与建设和运营的区域性区块链基础设施&#xff0c;通过多方协同&#xff0c;共同打造合作共赢的区块链产业生态。 蜀信链区块链服务生态秉承“…

iiiiiiiiiiiiiiiiiiiiiiiiiio_contexttttttttttttttttttttttttt

https://www.cnblogs.com/bwbfight/p/17594353.html 谈一谈linux下线程池 - 白伟碧一些小心得 - 博客园 (cnblogs.com) 谈一谈linux下线程池 - 白伟碧一些小心得 - 博客园 (cnblogs.com) https://www.cnblogs.com/bwbfight/p/10901574.html 前面的设计&#xff0c;我们对asio…

中序遍历的两种实现——二叉树专题复习

递归实现&#xff1a; /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right)…

改变conda创建虚拟环境时的默认路径(C盘)

①C:\Users\Lenovo 找到C盘中用户目录下的.condarc文件 ②打开.condarc文件后&#xff0c;添加并修改.condarc 中的 env_dirs 环境路径&#xff0c;按顺序第⼀个路径作为默认存储路径&#xff0c;也就是我的E盘&#xff08;需要你先在E盘中新建文件夹envsE&#xff09;。修改完…

智能本质:马毅教授对大模型和白盒理论的观点

引言 在人工智能的快速发展中&#xff0c;我们见证了从简单的自动化工具到复杂的智能系统的演变。随着深度学习技术的突破&#xff0c;大模型如GPT系列已经能够执行从文本生成到图像识别等多样化任务。然而&#xff0c;这些模型虽然在功能上取得了显著进展&#xff0c;但其内部…

2024年7月4日 (周四) 叶子游戏新闻

老板键工具来唤去: 它可以为常用程序自定义快捷键&#xff0c;实现一键唤起、一键隐藏的 Windows 工具&#xff0c;并且支持窗口动态绑定快捷键&#xff08;无需设置自动实现&#xff09;。 卸载工具 HiBitUninstaller: Windows上的软件卸载工具 《最终幻想14》画面升级后 著名…

微信小程序毕业设计-球馆预约系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

江协科技51单片机学习- p21 LED点阵屏(8*8)

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

2024 年 亚太赛 APMCM (B题)中文赛道国际大学生数学建模挑战赛 |洪水灾害数据分析 | 数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题&#xff01; 完整内容可以在文章末尾领取&#xff01; 该段文字…

Spring MVC 中使用 RESTFul 编程风格

1. Spring MVC 中使用 RESTFul 编程风格 文章目录 1. Spring MVC 中使用 RESTFul 编程风格2. RESTFul 编程风格2.1 RESTFul 是什么2.2 RESTFul风格与传统方式对比 3. Spring MVC 中使用 RESTFul 编程风格(增删改查)的使用3.1 准备工作3.2 RESTFul 风格的 “查询” 所有&#xf…

git使用遇到的问题记录

文章目录 1. 记录以下问题*error: RPC failed; HTTP 307 curl 22 The requested URL returned error: 307* 1. 记录以下问题 error: RPC failed; HTTP 307 curl 22 The requested URL returned error: 307 第一种&#xff1a;clone的仓库地址或者账户密码发生改变&#xff1b;…

Websocket通信实战项目(js)(图片互传应用)(下)客户端H5+css+js实现

Rqtz : 个人主页 ​ 共享IT之美&#xff0c;共创机器未来 Sharing the Beauty of IT and Creating the Future of Machines Together 目录 起始 客户端GUI Javascripts连接websocket 使用localStorage保存用户输入的IP Websocket连接成功 Websocket接收数据 解析…

MySQL InnoDB Cluster 高可用集群部署

MySQL InnoDB Cluster 简介 官方文档&#xff1a;https://dev.mysql.com/doc/refman/8.4/en/mysql-innodb-cluster-introduction.html 本章介绍 MySQL InnoDB Cluster&#xff0c;它结合了 MySQL 技术&#xff0c;使您能够部署和管理完整的 MySQL 集成高可用性解决方案。 说…

科普文:Linux服务器性能调优之CPU调度策略和可调参数

概叙 进程 进程是操作系统虚拟出来的概念&#xff0c;用来组织计算机中的任务。计算机的核心是CPU&#xff0c;它承担了所有的计算任务&#xff1b;而操作系统是计算机的管理者&#xff0c;它负责任务的调度、资源的分配和管理&#xff0c;统领整个计算机硬件&#xff1b;应用…

网络编程:UDP编程笔记

1.字节序的概念和转换 小端格式: 低位字节数据存储在低地址 大端格式: 高位字节数据存储在低地址 在主机上时为小端存储,在网络上时为大端,所以接收到数据时,要转为小端口 如下图: #include <arpa/inet.h> 发送者调用的函数: uint32_t htonl(uint32_t hostlong); //转…