• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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```