1# @ohos.application.AccessibilityExtensionAbility (辅助功能扩展能力)(系统接口) 2 3<!--Kit: Accessibility Kit--> 4<!--Subsystem: BarrierFree--> 5<!--Owner: @qiiiiiiian--> 6<!--Designer: @z7o--> 7<!--Tester: @A_qqq--> 8<!--Adviser: @w_Machine_cc--> 9 10AccessibilityExtensionAbility基于ExtensionAbility框架,提供辅助功能业务的能力,能力包括成功连接无障碍服务、断开无障碍服务、处理无障碍服务事件和无障碍按键事件等。 11 12> **说明:** 13> 14> - 本模块首批接口从API version 20开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。 15> - 当前页面仅包含本模块的系统接口。其他公开接口参见[@ohos.application.AccessibilityExtensionAbility](js-apis-application-accessibilityExtensionAbility.md)。 16 17## 导入模块 18 19```ts 20import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit'; 21``` 22## AccessibilityEventInfo 23 24无障碍事件信息。 25 26**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core 27 28### 属性 29 30| 名称 | 类型 | 只读 | 可选 | 说明 | 31| ----------------------------- | ---------------------------------------- | ---- | ---- | ---------------------------------------- | 32| eventType | [AccessibilityEventType](./js-apis-accessibility-sys.md#accessibilityeventtype) | 否 | 否 | 无障碍事件类型。 | 33| target | [AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext-sys.md#accessibilityelement12) | 否 | 是 | 发生事件的目标组件。 | 34| timeStamp | number | 否 | 是 | 事件时间戳,单位是毫秒。默认值为0。 | 35| extraInfo | string | 否 | 是 | 针对TextArea、TextInput、SearchField、RichEdit组件, 组件文本内容有新增或删除时,新增或删除的文本内容。 | 36 37 38## AccessibilityExtensionAbility.onAccessibilityConnect 39 40onAccessibilityConnect(): void; 41 42连接无障碍服务成功后的回调函数。 43用户启用AccessibilityExtensionAbility时,系统服务完成连接后回调该接口,在该方法中完成初始化业务逻辑操作。 该方法可以选择性重写。 无障碍服务通过该回调,通知Ability已成功连接。 44 45**系统接口**:此接口为系统接口。 46 47**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY 48 49**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 50 51**错误码:** 52 53以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 54 55| 错误码ID | 错误信息 | 56| ------- | -------------------------------- | 57| 201 | Permission verification failed. The application does not have the permission required to call the API. | 58| 202 | Permission verification failed. A non-system application calls a system API. | 59 60**示例:** 61 62```ts 63import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit'; 64 65class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility { 66 onAccessibilityConnect(): void { 67 console.log('AxExtensionAbility onAccessibilityConnect'); 68 } 69} 70``` 71 72## AccessibilityExtensionAbility.onAccessibilityDisconnect 73 74onAccessibilityDisconnect(): void; 75 76断开无障碍服务成功后的回调函数。 77用户停用AccessibilityExtensionAbility时,系统服务完成断开连接后回调该接口,在该方法中执行资源回收和退出业务操作。该方法可以选择性重写。 78 79**系统接口**:此接口为系统接口。 80 81**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY 82 83**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 84 85**错误码:** 86 87以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 88 89| 错误码ID | 错误信息 | 90| ------- | -------------------------------- | 91| 201 | Permission verification failed. The application does not have the permission required to call the API. | 92| 202 | Permission verification failed. A non-system application calls a system API. | 93 94**示例:** 95 96```ts 97import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit'; 98 99class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility { 100 onAccessibilityDisconnect(): void { 101 console.log('AxExtensionAbility onAccessibilityDisconnect'); 102 } 103} 104``` 105 106## AccessibilityExtensionAbility.onAccessibilityEventInfo 107 108onAccessibilityEventInfo(event: AccessibilityEventInfo): void; 109 110在应用和事件发生时回调该接口,根据事件信息处理业务逻辑。通常需要重写。 111 112**系统接口**:此接口为系统接口。 113 114**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY 115 116**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 117 118**参数:** 119 120| 参数名 | 类型 | 必填 | 说明 | 121| ----- | ---------------------------------------- | ---- | ----- | 122| event | [AccessibilityEventInfo](#accessibilityeventinfo) | 是 | 无障碍事件 | 123 124**错误码:** 125 126以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 127 128| 错误码ID | 错误信息 | 129| ------- | -------------------------------- | 130| 201 | Permission verification failed. The application does not have the permission required to call the API. | 131| 202 | Permission verification failed. A non-system application calls a system API. | 132 133**示例:** 134 135```ts 136import { AccessibilityExtensionAbility, AccessibilityEventInfo, AccessibilityEventType } from '@kit.AccessibilityKit'; 137 138class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility { 139 onAccessibilityEventInfo(event: AccessibilityEventInfo): void { 140 console.log('AxExtensionAbility onAccessibilityEventInfo'); 141 if (event.eventType === AccessibilityEventType.TYPE_CLICK) { 142 console.log('AxExtensionAbility onAccessibilityEventInfo: click'); 143 } 144 } 145} 146``` 147 148## AccessibilityExtensionAbility.onAccessibilityKeyEvent 149 150onAccessibilityKeyEvent(keyEvent: KeyEvent): boolean; 151 152在物理按键按下时回调该方法,在该方法中根据业务判断是否消费事件。 153 154**系统接口**:此接口为系统接口。 155 156**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY 157 158**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 159 160**参数:** 161 162| 参数名 | 类型 | 必填 | 说明 | 163| -------- | ---------------------------------------- | ---- | ---- | 164| keyEvent | [KeyEvent](../apis-input-kit/js-apis-keyevent.md#keyevent) | 是 | 按键事件。 | 165 166**返回值:** 167| 类型 | 说明 | 168| ------- | ------------------------------------------------------------ | 169| boolean | 返回true表示此事件被消费,不会继续传递。<br>返回false表示些事件未被消费,会继续传递。| 170 171**错误码:** 172 173以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 174 175| 错误码ID | 错误信息 | 176| ------- | -------------------------------- | 177| 201 | Permission verification failed. The application does not have the permission required to call the API. | 178| 202 | Permission verification failed. A non-system application calls a system API. | 179 180**示例:** 181 182```ts 183import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit'; 184import { KeyEvent, KeyCode } from '@kit.InputKit'; 185 186class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility { 187 onAccessibilityKeyEvent(keyEvent: KeyEvent): boolean { 188 console.log('AxExtensionAbility onAccessibilityKeyEvent'); 189 if (keyEvent.key.code === KeyCode.KEYCODE_VOLUME_UP) { 190 console.log('AxExtensionAbility onAccessibilityKeyEvent: intercept 16'); 191 return true; 192 } 193 return false; 194 } 195} 196```