@ohos.application.AccessibilityExtensionAbility (辅助功能扩展能力)(系统接口)

AccessibilityExtensionAbility基于ExtensionAbility框架,提供辅助功能业务的能力,能力包括成功连接无障碍服务、断开无障碍服务、处理无障碍服务事件和无障碍按键事件等。

说明:

  • 本模块首批接口从API version 20开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。
  • 当前页面仅包含本模块的系统接口。其他公开接口参见@ohos.application.AccessibilityExtensionAbility

导入模块

import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';

AccessibilityEventInfo

无障碍事件信息。

系统接口:此接口为系统接口。

系统能力:SystemCapability.BarrierFree.Accessibility.Core

属性

名称 类型 只读 可选 说明
eventType AccessibilityEventType 无障碍事件类型。
target AccessibilityElement 发生事件的目标组件。
timeStamp number 事件时间戳,单位是毫秒。默认值为0。
extraInfo string 针对TextArea、TextInput、SearchField、RichEdit组件, 组件文本内容有新增或删除时,新增或删除的文本内容。

AccessibilityExtensionAbility.onAccessibilityConnect

onAccessibilityConnect(): void;

连接无障碍服务成功后的回调函数。 用户启用AccessibilityExtensionAbility时,系统服务完成连接后回调该接口,在该方法中完成初始化业务逻辑操作。 该方法可以选择性重写。 无障碍服务通过该回调,通知Ability已成功连接。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY

系统能力:SystemCapability.BarrierFree.Accessibility.Core

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID 错误信息
201 Permission verification failed. The application does not have the permission required to call the API.
202 Permission verification failed. A non-system application calls a system API.

示例:

import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';

class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
  onAccessibilityConnect(): void {
    console.info('AxExtensionAbility onAccessibilityConnect');
  }
}

AccessibilityExtensionAbility.onAccessibilityDisconnect

onAccessibilityDisconnect(): void;

断开无障碍服务成功后的回调函数。 用户停用AccessibilityExtensionAbility时,系统服务完成断开连接后回调该接口,在该方法中执行资源回收和退出业务操作。该方法可以选择性重写。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY

系统能力:SystemCapability.BarrierFree.Accessibility.Core

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID 错误信息
201 Permission verification failed. The application does not have the permission required to call the API.
202 Permission verification failed. A non-system application calls a system API.

示例:

import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';

class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
  onAccessibilityDisconnect(): void {
    console.info('AxExtensionAbility onAccessibilityDisconnect');
  }
}

AccessibilityExtensionAbility.onAccessibilityEventInfo

onAccessibilityEventInfo(event: AccessibilityEventInfo): void;

在应用和事件发生时回调该接口,根据事件信息处理业务逻辑。通常需要重写。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY

系统能力:SystemCapability.BarrierFree.Accessibility.Core

参数:

参数名 类型 必填 说明
event AccessibilityEventInfo 无障碍事件

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID 错误信息
201 Permission verification failed. The application does not have the permission required to call the API.
202 Permission verification failed. A non-system application calls a system API.

示例:

import { AccessibilityExtensionAbility, AccessibilityEventInfo, AccessibilityEventType } from '@kit.AccessibilityKit';

class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
  onAccessibilityEventInfo(event: AccessibilityEventInfo): void {
    console.info('AxExtensionAbility onAccessibilityEventInfo');
    if (event.eventType === AccessibilityEventType.TYPE_CLICK) {
      console.info('AxExtensionAbility onAccessibilityEventInfo: click');
    }
  }
}

AccessibilityExtensionAbility.onAccessibilityKeyEvent

onAccessibilityKeyEvent(keyEvent: KeyEvent): boolean;

在物理按键按下时回调该方法,在该方法中根据业务判断是否消费事件。

系统接口:此接口为系统接口。

需要权限:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY

系统能力:SystemCapability.BarrierFree.Accessibility.Core

参数:

参数名 类型 必填 说明
keyEvent KeyEvent 按键事件。

返回值:

类型 说明
boolean 返回true表示此事件被消费,不会继续传递。
返回false表示些事件未被消费,会继续传递。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID 错误信息
201 Permission verification failed. The application does not have the permission required to call the API.
202 Permission verification failed. A non-system application calls a system API.

示例:

import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
import { KeyEvent, KeyCode } from '@kit.InputKit';

class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
  onAccessibilityKeyEvent(keyEvent: KeyEvent): boolean {
    console.info('AxExtensionAbility onAccessibilityKeyEvent');
    if (keyEvent.key.code === KeyCode.KEYCODE_VOLUME_UP) {
      console.info('AxExtensionAbility onAccessibilityKeyEvent: intercept 16');
      return true;
    }
    return false;
  }
}