鸿蒙开发设备管理:【@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;

[AI Kimi] Context Caching 正式公测,推动长文本模型降本 90%

Kimi 的上下文缓存&#xff08;Context Caching&#xff09;技术&#xff0c;开启了公测。我们一起来看下。 介绍 上下文缓存&#xff08;Context Caching&#xff09;是一种高效的数据管理技术&#xff0c;它允许系统预先存储那些可能会被频繁请求的大量数据或信息。这样&am…

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

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

深入Spring Boot启动过程:揭秘设计模式与代码优化秘籍

Spring Boot作为一个强大的框架&#xff0c;其简化的配置和快速启动特性深受开发者喜爱。在本篇博客中&#xff0c;我们将深入探讨Spring Boot的启动过程&#xff0c;并分享一些在日常开发中可以参考的实例&#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》画面升级后 著名…

ruoyi实用性美化记录

一、将tab页中操作区的底色变为亮灰色 ruoyi-ui/src/layout/index.vue 中 <app-main/>改为<app-main style"background: #EEE"/> 二、对应的将form加上底色加边角弧度 ruoyi-ui/src/assets/styles/ruoyi.scss .el-form{border-radius: 3px;padding:…

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

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

【vue】实现自动轮播+滚轮控制

前言 有一个无缝轮播+滚轮控制的需求,找了很多的方法发现都没办法完美的实现这种效果。 用原生的js实现不是无缝滚动 用无缝滚动插件实现,发现pc端无法实现滚轮控制 目标 1 实现表格表无缝循环滚动 2 实现滚轮控制表格表数据滚动 3 掌握vue-seamless-scroll使用方式 一些思考…

江协科技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;…