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

2022-12-13 浏览 (727)

@ohos.app.ability.quickFixManager (quickFixManager)

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

说明:

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

导入模块

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

HapModuleQuickFixInfo

hap级别的快速修复信息。

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

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

名称类型必填说明
moduleNamestringHAP的名称。
originHapHashstring指示hap的哈希值。
quickFixFilePathstring指示快速修复文件的安装路径。

ApplicationQuickFixInfo

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

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

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

名称类型必填说明
bundleNamestring应用Bundle名称。
bundleVersionCodenumber应用的版本号。
bundleVersionNamestring应用版本号的文字描述。
quickFixVersionCodenumber快速修复补丁包的版本号。
quickFixVersionNamestring快速修复补丁包版本号的文字描述。
hapModuleQuickFixInfoArray<HapModuleQuickFixInfo>hap级别的快速修复信息。

quickFixManager.applyQuickFix

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

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

需要权限: ohos.permission.INSTALL_BUNDLE

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

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

参数:

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

错误码

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

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

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

说明:调用applyQuickFix接口时,补丁文件所在路径为应用沙箱路径。沙箱路径的获取参考获取应用的沙箱路径,映射到设备上的路径为/proc/<应用进程Id>/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: 此接口为系统接口,三方应用不支持调用。

参数:

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

返回值:

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

错误码

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

错误码ID错误信息
18500002The specified quick fix is invalid. It may not exist or inaccessible.
18500008Internal 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: 此接口为系统接口,三方应用不支持调用。

参数:

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

错误码

错误码ID错误信息
18500001The specified bundleName is invalid.
18500008Internal 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: 此接口为系统接口,三方应用不支持调用。

参数:

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

返回值:

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

错误码

错误码ID错误信息
18500001The specified bundleName is invalid.
18500008Internal 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:此接口为系统接口,三方应用不支持调用。

参数:

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

错误码

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

错误码ID错误信息
18500001The bundle is not exist or no patch has applied.
18500009The 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:此接口为系统接口,三方应用不支持调用。

参数:

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

返回值:

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

错误码

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

错误码ID错误信息
18500001The bundle is not exist or no patch has applied.
18500009The 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 (企业设备管理扩展能力)

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/521b43123ccd42c7adb7da1911643399