升級(jí)
說(shuō)明: 本模塊首批接口從API version 6開(kāi)始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。 開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔 :[
gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
升級(jí)范圍:升級(jí)整個(gè)系統(tǒng),包括內(nèi)置的資源、預(yù)置應(yīng)用;第三方的應(yīng)用不在升級(jí)的范圍。
升級(jí)依賴:升級(jí)分為SD卡升級(jí)和在線升級(jí)兩種。
- SD卡升級(jí)依賴升級(jí)包和SD卡安裝。
- 在線升級(jí)依賴設(shè)備廠商部署的用于管理升級(jí)包的服務(wù)器。服務(wù)器由設(shè)備廠商部署,IP由調(diào)用者傳入,請(qǐng)求的request接口是固定的,由設(shè)備廠商開(kāi)發(fā)。
導(dǎo)入模塊
import update from '@ohos.update'
權(quán)限列表
無(wú)
update.getUpdater
getUpdater(upgradeFile: string, updateType?: UpdateTypes): Updater
獲取本地升級(jí)Updater。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
upgradeFile | string | 是 | 升級(jí)文件 |
updateType | [UpdateTypes] | 是 | 升級(jí)類型 |
返回值:
類型 | 說(shuō)明 |
---|---|
[Updater] | 升級(jí)對(duì)象 |
示例:
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
獲取升級(jí)對(duì)象給待升級(jí)設(shè)備。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
upgradeFile | string | 是 | 升級(jí)文件 |
device | string | 是 | 待升級(jí)設(shè)備 |
updateType | [UpdateTypes] | 是 | 升級(jí)類型 |
返回值:
類型 | 說(shuō)明 |
---|---|
[Updater] | 升級(jí)對(duì)象 |
示例:
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
獲取其它設(shè)備為本設(shè)備升級(jí)的Updater。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
upgradeFile | string | 是 | 升級(jí)文件 |
device | string | 是 | 待升級(jí)設(shè)備 |
updateType | [UpdateTypes] | 是 | 升級(jí)類型 |
返回值:
類型 | 說(shuō)明 |
---|---|
[Updater] | 升級(jí)對(duì)象 |
示例:
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方式作為異步方法。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback<[NewVersionInfo]> | 否 | 回調(diào)返回新版本信息 |
示例:
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方式作為異步方法。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<[NewVersionInfo]> | Promise,用于異步獲取結(jié)果 |
示例:
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方式作為異步方法。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback<[NewVersionInfo]> | 否 | 回調(diào)返回新版本信息 |
示例:
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方式作為異步方法。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<[NewVersionInfo]> | Promise函數(shù)返回新版本信息 |
示例:
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
升級(jí)前檢查升級(jí)包是否有效。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
upgradeFile | string | 是 | 待校驗(yàn)的升級(jí)包路徑 |
certsFile | string | 是 | 證書(shū)路徑 |
示例:
updater.on("verifyProgress", callback = > {
console.info('on verifyProgress ' + callback.percent);
});
update.verifyUpdatePackage("XXX", "XXX");
rebootAndCleanUserData8+
rebootAndCleanUserData(): Promise
重啟設(shè)備并清除用戶分區(qū)數(shù)據(jù)。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise示例,用于異步獲取結(jié)果。 |
示例:
updater.rebootAndCleanUserData().then(result = > {
console.log("rebootAndCleanUserData " + result);
}).catch(err = > {
console.info("rebootAndCleanUserData promise error: " + err.code);
});
rebootAndCleanUserData8+
rebootAndCleanUserData(callback: AsyncCallback): void
重啟設(shè)備并清除用戶分區(qū)數(shù)據(jù)。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | Function | 是 | AsyncCallback |
示例:
updater.rebootAndCleanUserData((err, result) = > {
console.log("rebootAndCleanUserData ", result)
});
applyNewVersion
applyNewVersion(): Promise
重啟設(shè)備后安裝升級(jí)包。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise示例,用于異步獲取結(jié)果。 |
示例:
updater.applyNewVersion().then(result = > {
console.log("appVewVersion ", result)
}).catch(err = > {
console.info("applyNewVersion promise error: " + err.code);
});
applyNewVersion
applyNewVersion(callback: AsyncCallback): void
重啟設(shè)備后安裝升級(jí)包。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | Function | 是 | AsyncCallback |
示例:
updater.applyNewVersion((err, result) = > {
console.log("applyNewVersion ", result)
});
download
download(): void
下載新版本,并監(jiān)聽(tīng)下載進(jìn)程。
系統(tǒng)能力 :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
啟動(dòng)升級(jí)。
系統(tǒng)能力 :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
設(shè)置升級(jí)策略,使用callback方式作為異步方法。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
policy | [UpdatePolicy] | 是 | 設(shè)置升級(jí)策略 |
callback | AsyncCallback | 是 | 回調(diào)返回結(jié)果 |
示例:
// 設(shè)置策略
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
設(shè)置升級(jí)策略,使用promise方式作為異步方法。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
policy | [UpdatePolicy] | 是 | 設(shè)置升級(jí)策略 |
返回值:
類型 | 說(shuō)明 |
---|---|
Promise | Promise函數(shù)返回設(shè)置結(jié)果 |
示例:
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
獲取升級(jí)策略信息,使用callback方式作為異步方法。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
參數(shù):
參數(shù)名 | 類型 | 必填 | 說(shuō)明 |
---|---|---|---|
callback | AsyncCallback<[UpdatePolicy]> | 否 | 回調(diào)返回升級(jí)策略信息 |
示例:
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
獲取升級(jí)策略,通過(guò)promise方式作為異步方法。
系統(tǒng)能力 :SystemCapability.Update.UpdateService
返回值:
類型 | 說(shuō)明 |
---|---|
Promise<[UpdatePolicy]> | Promise函數(shù)返回升級(jí)策略信息 |
示例:
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
升級(jí)類型。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為:SystemCapability.Update.UpdateService
參數(shù)名 | 說(shuō)明 |
---|---|
OTA | OTA升級(jí) |
patch | 補(bǔ)丁升級(jí) |
PackageTypes
升級(jí)包類型。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為:SystemCapability.Update.UpdateService
參數(shù)名 | 默認(rèn)值 | 說(shuō)明 |
---|---|---|
PACKAGE_TYPE_NORMAL | 1 | 通用升級(jí)包 |
PACKAGE_TYPE_BASE | 2 | 基礎(chǔ)升級(jí)包 |
PACKAGE_TYPE_CUST | 3 | 定制升級(jí)包 |
PACKAGE_TYPE_PRELOAD | 4 | 預(yù)裝升級(jí)包 |
PACKAGE_TYPE_COTA | 5 | 參數(shù)配置升級(jí)包 |
PACKAGE_TYPE_VERSION | 6 | 版本升級(jí)包 |
PACKAGE_TYPE_PATCH | 7 | 補(bǔ)丁包 |
InstallMode
安裝模式。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為:SystemCapability.Update.UpdateService
參數(shù)名 | 默認(rèn)值 | 說(shuō)明 |
---|---|---|
INSTALL_MODE_NORMAL | 0 | 正常升級(jí) |
INSTALL_MODE_NIGHT | 1 | 夜間升級(jí) |
INSTALL_MODE_AUTO | 2 | 自動(dòng)升級(jí) |
NewVersionStatus
新版本檢測(cè)狀態(tài)。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為:SystemCapability.Update.UpdateService
參數(shù)名 | 默認(rèn)值 | 說(shuō)明 |
---|---|---|
VERSION_STATUS_ERR | -1 | 檢測(cè)版本時(shí)出錯(cuò) |
VERSION_STATUS_NEW | 0 | 檢測(cè)到新版本 |
VERSION_STATUS_NONE | 1 | 沒(méi)有檢測(cè)到新版本 |
VERSION_STATUS_BUSY | 2 | 檢測(cè)版本時(shí)忙 |
UpdatePolicy
升級(jí)策略。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為:SystemCapability.Update.UpdateService
名稱 | 參數(shù)類型 | 必填 | 說(shuō)明 |
---|---|---|---|
autoDownload | bool | 是 | 自動(dòng)升級(jí)開(kāi)關(guān) |
installMode | [InstallMode] | 是 | 安裝模式 |
autoUpgradeInterval | Array | 是 | 自動(dòng)升級(jí)時(shí)間段 |
NewVersionInfo
新版本信息。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為:SystemCapability.Update.UpdateService
名稱 | 參數(shù)類型 | 必填 | 說(shuō)明 |
---|---|---|---|
status | [NewVersionStatus] | 是 | 升級(jí)狀態(tài) |
errMsg | string | 是 | 錯(cuò)誤信息 |
checkResults | Array<[CheckResult]> | 是 | 檢測(cè)結(jié)果 |
descriptionInfo | Array<[DescriptionInfo]> | 是 | 描述信息 |
CheckResult
檢測(cè)結(jié)果。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為:SystemCapability.Update.UpdateService
名稱 | 參數(shù)類型 | 必填 | 說(shuō)明 |
---|---|---|---|
versionName | string | 是 | 版本名稱 |
versionCode | number | 是 | 版本編碼 |
size | number | 是 | 版本大小 |
verifyInfo | string | 是 | 版本校驗(yàn)信息 |
packageType | [PackageTypes] | 是 | 版本類型 |
descriptionId | string | 是HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 | 版本描述信息 |
DescriptionInfo
版本描述信息。
系統(tǒng)能力 :以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為:SystemCapability.Update.UpdateService
名稱 | 參數(shù)類型 | 必填 | 說(shuō)明 |
---|---|---|---|
descriptionId | string | 是 | 版本versionId信息 |
content | string | 是 | 版本changelog信息 |
審核編輯 黃宇
-
鴻蒙
+關(guān)注
關(guān)注
57文章
2352瀏覽量
42859
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論