harmony 鸿蒙@ohos.app.ability.quickFixManager (quickFixManager)

  • 2022-12-13
  • 浏览 (579)

@ohos.app.ability.quickFixManager (quickFixManager)

quickFixManager模块提供快速修复的能力,快速修复是OpenHarmony提供给开发者的一种技术手段,支持开发者以远快于(小时级、分钟级)应用升级的方式进行缺陷修复。

说明:

本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import quickFixManager from '@ohos.app.ability.quickFixManager';

HapModuleQuickFixInfo

hap级别的快速修复信息。

系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

系统API: 此接口为系统接口,三方应用不支持调用。

名称 类型 必填 说明
moduleName string HAP的名称。
originHapHash string 指示hap的哈希值。
quickFixFilePath string 指示快速修复文件的安装路径。

ApplicationQuickFixInfo

应用级别的快速修复信息。

系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

系统API: 此接口为系统接口,三方应用不支持调用。

名称 类型 必填 说明
bundleName string 应用Bundle名称。
bundleVersionCode number 应用的版本号。
bundleVersionName string 应用版本号的文字描述。
quickFixVersionCode number 快速修复补丁包的版本号。
quickFixVersionName string 快速修复补丁包版本号的文字描述。
hapModuleQuickFixInfo Array<HapModuleQuickFixInfo> hap级别的快速修复信息。

quickFixManager.applyQuickFix

applyQuickFix(hapModuleQuickFixFiles: Array<string>, callback: AsyncCallback<void>): void;

快速修复的补丁安装接口。

需要权限: ohos.permission.INSTALL_BUNDLE

系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名 类型 必填 说明
hapModuleQuickFixFiles Array<string> 快速修复补丁文件(补丁文件需包含有效的文件路径)。
callback AsyncCallback<void> 表示指定的回调方法。

错误码

在打补丁过程中发生的错误,其错误码及错误信息通过公共事件COMMON_EVENT_QUICK_FIX_APPLY_RESULT的参数返回给应用开发者。

错误码ID 错误信息
18500002 The specified quick fix is invalid. It may not exist or inaccessible.
18500008 Internal error.

以上错误码详细介绍请参考errcode-ability

说明:调用applyQuickFix接口时,补丁文件所在路径为应用沙箱路径。沙箱路径的获取参考获取应用的沙箱路径,映射到设备上的路径为/proc/&lt;应用进程Id&gt;/root/沙箱路径。

示例:

import quickFixManager from '@ohos.app.ability.quickFixManager';

  try {
    let hapModuleQuickFixFiles = ['/data/storage/el2/base/entry.hqf'];
    quickFixManager.applyQuickFix(hapModuleQuickFixFiles, (error) => {
      if (error) {
          console.error( `applyQuickFix failed with error: ${error}`);
      } else {
          console.info( 'applyQuickFix success');
      }
    });
  } catch (paramError) {
    console.error('error.code: ${paramError.code}, error.message: ${paramError.message}');
  }

quickFixManager.applyQuickFix

applyQuickFix(hapModuleQuickFixFiles: Array<string>): Promise<void>;

快速修复的补丁安装接口。

需要权限: ohos.permission.INSTALL_BUNDLE

系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名 类型 必填 说明
hapModuleQuickFixFiles Array<string> 快速修复补丁文件(补丁文件需包含有效的文件路径)。

返回值:

类型 说明
Promise<void> 返回相应结果。

错误码

在打补丁过程中发生的错误,其错误码及错误信息通过公共事件COMMON_EVENT_QUICK_FIX_APPLY_RESULT的参数返回给应用开发者。

错误码ID 错误信息
18500002 The specified quick fix is invalid. It may not exist or inaccessible.
18500008 Internal error.

以上错误码详细介绍请参考errcode-ability

示例:

import quickFixManager from '@ohos.app.ability.quickFixManager';
import { BusinessError } from '@ohos.base';

  let hapModuleQuickFixFiles = ['/data/storage/el2/base/entry.hqf'];
  try {
    quickFixManager.applyQuickFix(hapModuleQuickFixFiles).then(() => {
      console.info('applyQuickFix success');
    }).catch((error: BusinessError) => {
      console.error(`applyQuickFix err: ${error}`);
    });
  } catch (paramError) {
    console.error(`error: ${paramError.code}, ${paramError.message}`);
  }

quickFixManager.getApplicationQuickFixInfo

getApplicationQuickFixInfo(bundleName: string, callback: AsyncCallback<ApplicationQuickFixInfo>): void;

获取应用的快速修复信息。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名 类型 必填 说明
bundleName string 应用Bundle名称。
callback AsyncCallback<ApplicationQuickFixInfo> 应用的快速修复信息。

错误码

错误码ID 错误信息
18500001 The specified bundleName is invalid.
18500008 Internal error.

以上错误码详细介绍请参考errcode-ability

示例:

import quickFixManager from '@ohos.app.ability.quickFixManager';

  try {
    let bundleName = 'bundleName';
    quickFixManager.getApplicationQuickFixInfo(bundleName, (error, data) => {
      if (error) {
        console.error(`getApplicationQuickFixInfo error: ${error}`);
      } else {
        console.info(`getApplicationQuickFixInfo success: ${data}`);
      }
    });
  } catch (paramError) {
    console.error(`error: ${paramError.code}, ${paramError.message}`);
  }

quickFixManager.getApplicationQuickFixInfo

getApplicationQuickFixInfo(bundleName: string): Promise<ApplicationQuickFixInfo>;

获取应用的快速修复信息。

需要权限: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

系统API: 此接口为系统接口,三方应用不支持调用。

参数:

参数名 类型 必填 说明
bundleName string 应用Bundle名称。

返回值:

类型 说明
Promise<ApplicationQuickFixInfo> 返回应用的快速修复信息。

错误码

错误码ID 错误信息
18500001 The specified bundleName is invalid.
18500008 Internal error.

以上错误码详细介绍请参考errcode-ability

示例:

import quickFixManager from '@ohos.app.ability.quickFixManager';
import { BusinessError } from '@ohos.base';

  try {
    let bundleName = 'bundleName';
    quickFixManager.getApplicationQuickFixInfo(bundleName).then((data) => {
      console.info(`getApplicationQuickFixInfo success: ${data}`);
    }).catch((error: BusinessError) => {
      console.error(`getApplicationQuickFixInfo err: ${error}`);
    });
  } catch (paramError) {
    console.error(`error: ${paramError.code}, ${paramError.message}`);
  }

quickFixManager.revokeQuickFix10+

revokeQuickFix(bundleName: string, callback: AsyncCallback<void>): void;

撤销快速修复的接口,使用callback方式返回结果。

需要权限:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED, ohos.permission.INSTALL_BUNDLE

系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

系统API:此接口为系统接口,三方应用不支持调用。

参数:

参数名 类型 必填 说明
bundleName string 需要撤销补丁的应用Bundle名称。
callback AsyncCallback<void> 表示指定的回调方法。

错误码

以下错误码详细介绍请参考errcode-ability

错误码ID 错误信息
18500001 The bundle is not exist or no patch has applied.
18500009 The application has a apply quick fix task that is being processed.

在撤销补丁过程中发生的错误,其错误码及错误信息通过公共事件COMMON_EVENT_QUICK_FIX_REVOKE_RESULT的参数返回给应用开发者。

示例:

import quickFixManager from '@ohos.app.ability.quickFixManager';

  let bundleName = "com.example.myapplication";
  quickFixManager.revokeQuickFix(bundleName, (err) => {
    console.info("revokeQuickFix " + bundleName + " " + JSON.stringify(err));
  });

quickFixManager.revokeQuickFix10+

revokeQuickFix(bundleName: string): Promise<void>;

撤销快速修复的接口,使用Promise方式返回结果。

需要权限:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED, ohos.permission.INSTALL_BUNDLE

系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.QuickFix

系统API:此接口为系统接口,三方应用不支持调用。

参数:

参数名 类型 必填 说明
bundleName string 需要撤销补丁的应用Bundle名称。

返回值:

类型 说明
Promise<void> 返回相应结果。

错误码

以下错误码详细介绍请参考errcode-ability

错误码ID 错误信息
18500001 The bundle is not exist or no patch has applied.
18500009 The application has a apply quick fix task that is being processed.

在撤销补丁过程中发生的错误,其错误码及错误信息通过公共事件COMMON_EVENT_QUICK_FIX_REVOKE_RESULT的参数返回给应用开发者。这部分错误码及错误信息如下:

示例:

import quickFixManager from '@ohos.app.ability.quickFixManager';
import { BusinessError } from '@ohos.base';

  let bundleName = "com.example.myapplication";
  quickFixManager.revokeQuickFix(bundleName).then(() => {
    console.info("revokeQuickFix " + bundleName +" ok");
  }).catch((err: BusinessError) => {
    console.info("revokeQuickFix " + bundleName +" failed, error code is ", JSON.stringify((err)));
  });

你可能感兴趣的鸿蒙文章

harmony 鸿蒙接口

harmony 鸿蒙系统公共事件定义(待停用)

harmony 鸿蒙系统公共事件定义

harmony 鸿蒙开发说明

harmony 鸿蒙企业设备管理概述(仅对系统应用开放)

harmony 鸿蒙BundleStatusCallback

harmony 鸿蒙@ohos.bundle.innerBundleManager (innerBundleManager模块)

harmony 鸿蒙@ohos.distributedBundle (分布式包管理)

harmony 鸿蒙@ohos.bundle (Bundle模块)

harmony 鸿蒙@ohos.enterprise.EnterpriseAdminExtensionAbility (企业设备管理扩展能力)

0  赞