• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.display (屏幕属性)
2
3屏幕属性提供管理显示设备的一些基础能力,包括获取默认显示设备的信息,获取所有显示设备的信息以及监听显示设备的插拔行为。
4
5> **说明:**
6>
7> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```ts
12import { display } from '@kit.ArkUI';
13```
14
15## DisplayState
16
17显示设备的状态枚举。
18
19**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
20
21**系统能力:** SystemCapability.WindowManager.WindowManager.Core
22
23| 名称 | 值 | 说明 |
24| -------- | -------- | -------- |
25| STATE_UNKNOWN | 0 | 表示显示设备状态未知。|
26| STATE_OFF | 1 | 表示显示设备状态为关闭。 |
27| STATE_ON | 2 | 表示显示设备状态为开启。|
28| STATE_DOZE | 3 | 表示显示设备为低电耗模式。|
29| STATE_DOZE_SUSPEND | 4 | 表示显示设备为睡眠模式,CPU为挂起状态。 |
30| STATE_VR | 5 | 表示显示设备为VR模式。|
31| STATE_ON_SUSPEND | 6 | 表示显示设备为开启状态,CPU为挂起状态。 |
32
33## Orientation<sup>10+</sup>
34
35显示设备当前显示的方向枚举。
36
37**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
38
39**系统能力:** SystemCapability.WindowManager.WindowManager.Core
40
41| 名称 | 值 | 说明 |
42| -------- | -------- | -------- |
43| PORTRAIT | 0 | 表示设备当前以竖屏方式显示。|
44| LANDSCAPE | 1 | 表示设备当前以横屏方式显示。 |
45| PORTRAIT_INVERTED | 2 | 表示设备当前以反向竖屏方式显示。|
46| LANDSCAPE_INVERTED | 3 | 表示设备当前以反向横屏方式显示。|
47
48## FoldStatus<sup>10+</sup>
49
50当前可折叠设备的折叠状态枚举。如果是双折轴设备,则在充电口朝下的状态下,从右到左分别是折轴一和折轴二。
51
52**系统能力:** SystemCapability.Window.SessionManager
53
54| 名称 | 值 | 说明 |
55| -------- | -------- | -------- |
56| FOLD_STATUS_UNKNOWN<sup>10+</sup> | 0 | 表示设备当前折叠状态未知。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。|
57| FOLD_STATUS_EXPANDED<sup>10+</sup> | 1 | 表示设备当前折叠状态为完全展开。如果是双折轴设备,则表示折轴一折叠状态为完全展开,折轴二折叠状态为折叠。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。|
58| FOLD_STATUS_FOLDED<sup>10+</sup> | 2 | 表示设备当前折叠状态为折叠。如果是双折轴设备,则表示折轴一折叠状态为折叠,折轴二折叠状态为折叠。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。|
59| FOLD_STATUS_HALF_FOLDED<sup>10+</sup> | 3 | 表示设备当前折叠状态为半折叠。半折叠指完全展开和折叠之间的状态。如果是双折轴设备,则表示折轴一折叠状态为半折叠,折轴二折叠状态为折叠。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。|
60| FOLD_STATUS_EXPANDED_WITH_SECOND_EXPANDED<sup>15+</sup> | 11 | 表示双折轴设备折轴一折叠状态为完全展开,折轴二折叠状态为完全展开。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
61| FOLD_STATUS_EXPANDED_WITH_SECOND_HALF_FOLDED<sup>15+</sup> | 21 | 表示双折轴设备折轴一折叠状态为完全展开,折轴二折叠状态为半折叠。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
62| FOLD_STATUS_FOLDED_WITH_SECOND_EXPANDED<sup>15+</sup> | 12 | 表示双折轴设备折轴一折叠状态为折叠,折轴二折叠状态为完全展开。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
63| FOLD_STATUS_FOLDED_WITH_SECOND_HALF_FOLDED<sup>15+</sup> | 22 | 表示双折轴设备折轴一折叠状态为折叠,折轴二折叠状态为半折叠。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
64| FOLD_STATUS_HALF_FOLDED_WITH_SECOND_EXPANDED<sup>15+</sup> | 13 | 表示双折轴设备折轴一折叠状态为半折叠,折轴二折叠状态为完全展开。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
65| FOLD_STATUS_HALF_FOLDED_WITH_SECOND_HALF_FOLDED<sup>15+</sup> | 23 | 表示双折轴设备折轴一折叠状态为半折叠,折轴二折叠状态为半折叠。<br/>**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。|
66
67>**说明:**<br>
68> 只有一个折轴的产品包含FOLD_STATUS_EXPANDED、FOLD_STATUS_FOLDED、FOLD_STATUS_HALF_FOLDED三种折叠状态。
69> 具有两个折轴的产品包含上表所示九种折叠状态。<br>
70> FOLD_STATUS_UNKNOWN是一种不可用的折叠状态。
71
72## FoldDisplayMode<sup>10+</sup>
73
74可折叠设备的显示模式枚举。
75
76**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
77
78**系统能力:** SystemCapability.Window.SessionManager
79
80| 名称 | 值 | 说明 |
81| -------- | -------- | -------- |
82| FOLD_DISPLAY_MODE_UNKNOWN | 0 | 表示设备当前折叠显示模式未知。|
83| FOLD_DISPLAY_MODE_FULL | 1 | 表示设备当前全屏显示。 |
84| FOLD_DISPLAY_MODE_MAIN | 2 | 表示设备当前主屏幕显示。|
85| FOLD_DISPLAY_MODE_SUB | 3 | 表示设备当前子屏幕显示。|
86| FOLD_DISPLAY_MODE_COORDINATION | 4 | 表示设备当前双屏协同显示。|
87
88>**说明:**<br>
89>&bullet; 对于内外屏均可作为主屏幕使用的折叠产品,内屏显示状态为FOLD_DISPLAY_MODE_FULL,外屏显示状态为FOLD_DISPLAY_MODE_MAIN。<br>
90>&bullet; 对于外屏只有简单的辅助显示作用的折叠产品,内屏显示状态为FOLD_DISPLAY_MODE_MAIN,外屏显示状态为FOLD_DISPLAY_MODE_SUB。
91
92## FoldCreaseRegion<sup>10+</sup>
93
94折叠折痕区域。
95
96**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
97
98**系统能力:** SystemCapability.Window.SessionManager
99
100| 名称   | 类型 | 可读 | 可写 | 说明               |
101| ------ | -------- | ---- | ---- | ------------------ |
102| displayId   | number   | 是   | 否   | 显示器ID,用于识别折痕所在的屏幕。 |
103| creaseRects    | Array\<[Rect](#rect9)>   | 是   | 否   | 折痕区域。 |
104
105## Rect<sup>9+</sup>
106
107矩形区域。
108
109**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
110
111**系统能力:** SystemCapability.WindowManager.WindowManager.Core
112
113| 名称   | 类型 | 可读 | 可写 | 说明               |
114| ------ | -------- | ---- | ---- | ------------------ |
115| left   | number   | 是   | 是   | 矩形区域的左边界,单位为px,该参数应为整数。 |
116| top    | number   | 是   | 是   | 矩形区域的上边界,单位为px,该参数应为整数。 |
117| width  | number   | 是   | 是   | 矩形区域的宽度,单位为px,该参数应为整数。   |
118| height | number   | 是   | 是   | 矩形区域的高度,单位为px,该参数应为整数。   |
119
120## WaterfallDisplayAreaRects<sup>9+</sup>
121
122瀑布屏曲面部分显示区域。
123
124**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
125
126**系统能力:** SystemCapability.WindowManager.WindowManager.Core
127
128| 名称   | 类型      | 可读 | 可写 | 说明               |
129| ------ | ------------- | ---- | ---- | ------------------ |
130| left   | [Rect](#rect9) | 是   | 否   | 瀑布曲面区域的左侧矩形区域。 |
131| top    | [Rect](#rect9) | 是   | 否   | 瀑布曲面区域的顶部矩形区域。 |
132| right  | [Rect](#rect9) | 是   | 否   | 瀑布曲面区域的右侧矩形区域。 |
133| bottom | [Rect](#rect9) | 是   | 否   | 瀑布曲面区域的底部矩形区域。 |
134
135## CutoutInfo<sup>9+</sup>
136
137挖孔屏、刘海屏、瀑布屏等不可用屏幕区域信息。
138
139**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
140
141**系统能力:** SystemCapability.WindowManager.WindowManager.Core
142
143| 名称                        | 类型      | 可读 | 可写 | 说明               |
144| --------------------------- | ------------- | ---- | ---- | ------------------ |
145| boundingRects                | Array\<[Rect](#rect9)> | 是   | 否   | 挖孔、刘海等区域的边界矩形。如果没有挖孔、刘海等区域,数组返回为空。 |
146| waterfallDisplayAreaRects   | [WaterfallDisplayAreaRects](#waterfalldisplayarearects9) | 是 | 否 | 瀑布屏曲面部分显示区域。 |
147
148## DisplayPhysicalResolution<sup>12+</sup>
149折叠设备的显示模式以及对应的物理屏幕分辨率信息。
150
151**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
152
153**系统能力:** SystemCapability.WindowManager.WindowManager.Core
154
155| 名称                        | 类型      | 只读 | 可选 | 说明               |
156| --------------------------- | ------------- | ---- | ---- | ------------------ |
157| foldDisplayMode             | [FoldDisplayMode](#folddisplaymode10) | 是   | 否   | 折叠设备的显示模式。 |
158| physicalWidth   | number | 是 | 否 | 折叠设备的宽度,单位为px,该参数应为大于0的整数。|
159| physicalHeight  | number | 是 | 否 | 折叠设备的高度,单位为px,该参数应为大于0的整数。|
160
161## display.getDisplayByIdSync<sup>12+</sup>
162
163getDisplayByIdSync(displayId: number): Display
164
165根据displayId获取对应的display对象。
166
167**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
168
169**系统能力:** SystemCapability.WindowManager.WindowManager.Core
170
171**参数:**
172
173| 参数名 | 类型                      | 必填 | 说明       |
174| ------ | ------------------------- | ---- |----------|
175| displayId     | number                    | 是   | 屏幕id。该参数仅支持整数输入,该参数大于等于0。需要确保displayId准确才能成功获取到对应结果。可以通过[WindowProperties](js-apis-window.md#windowproperties)的displayId属性获取到准确的displayId作为入参。 |
176
177**返回值:**
178
179| 类型                           | 说明                                           |
180| ------------------------------| ----------------------------------------------|
181| [Display](#display) | 返回displayId对应的display对象。 |
182
183**错误码:**
184
185以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[屏幕错误码](errorcode-display.md)。
186
187| 错误码ID | 错误信息 |
188| ------- | ----------------------- |
189| 401     | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2. Incorrect parameter types. 3. Parameter verification failed.|
190| 1400003 | This display manager service works abnormally. |
191
192**示例:**
193
194```ts
195import { display } from '@kit.ArkUI';
196
197let displayClass: display.Display | null = null;
198
199try {
200  // 可以通过WindowProperties的displayId属性获取到准确的displayId作为入参
201  let displayId = 0;
202  displayClass = display.getDisplayByIdSync(displayId);
203} catch (exception) {
204  console.error(`Failed to get display. Code: ${exception.code}, message: ${exception.message}`);
205}
206```
207
208## display.getAllDisplayPhysicalResolution<sup>12+</sup>
209
210getAllDisplayPhysicalResolution(): Promise&lt;Array&lt;DisplayPhysicalResolution&gt;&gt;
211
212获取当前折叠设备的显示模式以及对应的物理屏幕分辨率信息对象。
213
214**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
215
216**系统能力:** SystemCapability.WindowManager.WindowManager.Core
217
218**返回值:**
219
220| 类型 | 说明 |
221| ----------------------------------------------- | ------------------------------------------------------- |
222| Promise&lt;Array&lt;[DisplayPhysicalResolution](#displayphysicalresolution12)&gt;&gt; | Promise对象。返回当前所有的DisplayPhysicalResolution对象。 |
223
224**错误码:**
225
226以下错误码的详细介绍请参见[屏幕错误码](errorcode-display.md)。
227
228| 错误码ID | 错误信息 |
229| ------- | ----------------------- |
230| 1400003 | This display manager service works abnormally. |
231
232**示例:**
233
234```ts
235import { BusinessError } from '@kit.BasicServicesKit';
236import { display } from '@kit.ArkUI';
237
238let promise = display.getAllDisplayPhysicalResolution();
239promise.then((resolutionObjects) => {
240  console.info('Obtaining physical resolution length: ' + resolutionObjects.length);
241  for (let i = 0; i < resolutionObjects.length; i++) {
242     console.info(`resolutionObjects[${i}].foldDisplayMode: ${resolutionObjects[i].foldDisplayMode}`);
243     console.info(`resolutionObjects[${i}].physicalWidth: ${resolutionObjects[i].physicalWidth}`);
244     console.info(`resolutionObjects[${i}].physicalHeight: ${resolutionObjects[i].physicalHeight}`);
245  }
246}).catch((err: BusinessError) => {
247  console.error(`Failed to obtain physical resolution. Code: ${err.code}, message: ${err.message}`);
248});
249```
250
251## display.getDefaultDisplaySync<sup>9+</sup>
252
253getDefaultDisplaySync(): Display
254
255获取当前默认的display对象。
256
257**系统能力:** SystemCapability.WindowManager.WindowManager.Core
258
259**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
260
261**返回值:**
262
263| 类型                           | 说明                                           |
264| ------------------------------| ----------------------------------------------|
265| [Display](#display) | 返回默认的display对象。 |
266
267**错误码:**
268
269以下错误码的详细介绍请参见[屏幕错误码](errorcode-display.md)。
270
271| 错误码ID | 错误信息 |
272| ------- | ----------------------- |
273| 1400001 | Invalid display or screen. |
274
275**示例:**
276
277```ts
278import { display } from '@kit.ArkUI';
279
280let displayClass: display.Display | null = null;
281
282displayClass = display.getDefaultDisplaySync();
283```
284
285## display.getPrimaryDisplaySync<sup>14+</sup>
286
287getPrimaryDisplaySync(): Display
288
289获取主屏信息。除2in1之外的设备获取的是设备自带屏幕的Display对象;2in1设备外接屏幕时获取的是当前主屏幕的Display对象;2in1设备没有外接屏幕时获取的是自带屏幕的Display对象。
290
291**系统能力:** SystemCapability.WindowManager.WindowManager.Core
292
293**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
294
295**返回值:**
296
297| 类型                           | 说明                                           |
298| ------------------------------| ----------------------------------------------|
299| [Display](#display) | 当前设备主屏幕的Display对象。 |
300
301**错误码:**
302
303以下错误码的详细介绍请参见[屏幕错误码](errorcode-display.md)。
304
305| 错误码ID | 错误信息 |
306| ------- | ----------------------- |
307| 1400001 | Invalid display or screen. |
308
309**示例:**
310
311```ts
312import { display } from '@kit.ArkUI';
313
314let displayClass: display.Display | null = null;
315
316displayClass = display.getPrimaryDisplaySync();
317```
318
319## display.getAllDisplays<sup>9+</sup>
320
321getAllDisplays(callback: AsyncCallback&lt;Array&lt;Display&gt;&gt;): void
322
323获取当前所有的display对象,使用callback异步回调。
324
325**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
326
327**系统能力:** SystemCapability.WindowManager.WindowManager.Core
328
329**参数:**
330
331| 参数名 | 类型 | 必填 | 说明 |
332| -------- | ---------------------------------------------------- | ---- | ------------------------------- |
333| callback | AsyncCallback&lt;Array&lt;[Display](#display)&gt;&gt; | 是 | 回调函数。返回当前所有的display对象。 |
334
335**错误码:**
336
337以下错误码的详细介绍请参见[屏幕错误码](errorcode-display.md)。
338
339| 错误码ID | 错误信息 |
340| ------- | ----------------------- |
341| 1400001 | Invalid display or screen. |
342
343**示例:**
344
345```ts
346import { BusinessError } from '@kit.BasicServicesKit';
347import { display } from '@kit.ArkUI';
348
349let displayClass: Array<display.Display> = [];
350display.getAllDisplays((err: BusinessError, data: Array<display.Display>) => {
351  displayClass = data;
352  const errCode: number = err.code;
353  if (errCode) {
354    console.error(`Failed to obtain all the display objects. Code: ${err.code}, message: ${err.message}`);
355    return;
356  }
357  console.info('Succeeded in obtaining all the display objects. Data: ' + JSON.stringify(data));
358});
359```
360
361## display.getAllDisplays<sup>9+</sup>
362
363getAllDisplays(): Promise&lt;Array&lt;Display&gt;&gt;
364
365获取当前所有的display对象,使用Promise异步回调。
366
367**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
368
369**系统能力:** SystemCapability.WindowManager.WindowManager.Core
370
371**返回值:**
372
373| 类型 | 说明 |
374| ----------------------------------------------- | ------------------------------------------------------- |
375| Promise&lt;Array&lt;[Display](#display)&gt;&gt; | Promise对象。返回当前所有的display对象。 |
376
377**错误码:**
378
379以下错误码的详细介绍请参见[屏幕错误码](errorcode-display.md)。
380
381| 错误码ID | 错误信息 |
382| ------- | ----------------------- |
383| 1400001 | Invalid display or screen. |
384
385**示例:**
386
387```ts
388import { BusinessError } from '@kit.BasicServicesKit';
389import { display } from '@kit.ArkUI';
390
391let displayClass: Array<display.Display> =[];
392let promise: Promise<Array<display.Display>> = display.getAllDisplays();
393promise.then((data: Array<display.Display>) => {
394  displayClass = data;
395  console.info('Succeeded in obtaining all the display objects. Data: ' + JSON.stringify(data));
396}).catch((err: BusinessError) => {
397  console.error(`Failed to obtain all the display objects. Code: ${err.code}, message: ${err.message}`);
398});
399```
400
401## display.on('add'|'remove'|'change')
402
403on(type: 'add'|'remove'|'change', callback: Callback&lt;number&gt;): void
404
405开启显示设备变化的监听。
406
407**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
408
409**系统能力:** SystemCapability.WindowManager.WindowManager.Core
410
411**参数:**
412
413| 参数名 | 类型 | 必填 | 说明                                                                                                                              |
414| -------- | -------- | -------- |---------------------------------------------------------------------------------------------------------------------------------|
415| type | string | 是 | 监听事件。<br/>- type为"add",表示增加显示设备事件。例如:插入显示器。<br/>- type为"remove",表示移除显示设备事件。例如:移除显示器。<br/>- type为"change",表示改变显示设备事件。例如:显示器方向改变。 |
416| callback | Callback&lt;number&gt; | 是 | 回调函数。返回监听到的显示设备的id,该参数应为整数。                                                                                                     |
417
418**错误码:**
419
420以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
421
422| 错误码ID | 错误信息 |
423| ------- | ----------------------- |
424| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.|
425
426**示例:**
427
428```ts
429import { Callback } from '@kit.BasicServicesKit';
430
431let callback: Callback<number> = (data: number) => {
432  console.info('Listening enabled. Data: ' + JSON.stringify(data));
433};
434
435display.on("add", callback);
436```
437
438## display.off('add'|'remove'|'change')
439
440off(type: 'add'|'remove'|'change', callback?: Callback&lt;number&gt;): void
441
442关闭显示设备变化的监听。
443
444**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
445
446**系统能力:** SystemCapability.WindowManager.WindowManager.Core
447
448**参数:**
449
450| 参数名 | 类型 | 必填 | 说明 |
451| -------- | -------- | -------- | -------- |
452| type | string | 是 | 监听事件。<br/>- type为"add",表示增加显示设备事件。例如:插入显示器。<br/>- type为"remove",表示移除显示设备事件。例如:移除显示器。<br/>- type为"change",表示改变显示设备事件。例如:显示器方向改变。 |
453| callback | Callback&lt;number&gt; | 否 | 需要取消注册的回调函数。返回监听到的显示设备的id,该参数应为整数。若无此参数,则取消注册当前type类型事件监听的所有回调函数。 |
454
455**错误码:**
456
457以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
458
459| 错误码ID | 错误信息 |
460| ------- | ----------------------- |
461| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.|
462
463**示例:**
464
465```ts
466
467// 如果通过on注册多个callback,同时关闭所有callback监听
468display.off("remove");
469
470let callback: Callback<number> = (data: number) => {
471  console.info('Succeeded in unregistering the callback for display remove. Data: ' + JSON.stringify(data))
472};
473// 关闭传入的callback监听
474display.off('remove', callback);
475```
476
477## display.isFoldable<sup>10+</sup>
478isFoldable(): boolean
479
480检查设备是否可折叠。
481
482**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
483
484**系统能力:** SystemCapability.Window.SessionManager
485
486**返回值:**
487
488| 类型 | 说明 |
489| ----------------------------------------------- | ------------------------------------------------------- |
490| boolean | boolean对象,返回当前设备是否可折叠的结果。false表示不可折叠,true表示可折叠。|
491
492**错误码:**
493
494以下错误码的详细介绍请参见[屏幕错误码](errorcode-display.md)。
495
496| 错误码ID | 错误信息 |
497| ------- | ----------------------- |
498| 1400003 | This display manager service works abnormally. |
499
500**示例:**
501
502```ts
503import { display } from '@kit.ArkUI';
504
505let ret: boolean = false;
506ret = display.isFoldable();
507```
508
509## display.getFoldStatus<sup>10+</sup>
510getFoldStatus(): FoldStatus
511
512获取可折叠设备的当前折叠状态。
513
514**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
515
516**系统能力:** SystemCapability.Window.SessionManager
517
518**返回值:**
519
520| 类型 | 说明 |
521| ----------------------------------------------- | ------------------------------------------------------- |
522| [FoldStatus](#foldstatus10) | FoldStatus对象,返回当前可折叠设备的折叠状态。 |
523
524**错误码:**
525
526以下错误码的详细介绍请参见[屏幕错误码](errorcode-display.md)。
527
528| 错误码ID | 错误信息 |
529| ------- | ----------------------- |
530| 1400003 | This display manager service works abnormally. |
531
532**示例:**
533
534```ts
535import { display } from '@kit.ArkUI';
536
537let data: display.FoldStatus = display.getFoldStatus();
538console.info('Succeeded in obtaining fold status. Data: ' + JSON.stringify(data));
539```
540
541## display.getFoldDisplayMode<sup>10+</sup>
542getFoldDisplayMode(): FoldDisplayMode
543
544获取可折叠设备的显示模式。
545
546**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
547
548**系统能力:** SystemCapability.Window.SessionManager
549
550**返回值:**
551
552| 类型 | 说明 |
553| ----------------------------------------------- | ------------------------------------------------------- |
554| [FoldDisplayMode](#folddisplaymode10) | FoldDisplayMode对象,返回当前可折叠设备的显示模式。 |
555
556**错误码:**
557
558以下错误码的详细介绍请参见[屏幕错误码](errorcode-display.md)。
559
560| 错误码ID | 错误信息 |
561| ------- | ----------------------- |
562| 1400003 | This display manager service works abnormally. |
563
564**示例:**
565
566```ts
567import { display } from '@kit.ArkUI';
568
569let data: display.FoldDisplayMode = display.getFoldDisplayMode();
570console.info('Succeeded in obtaining fold display mode. Data: ' + JSON.stringify(data));
571```
572
573## display.getCurrentFoldCreaseRegion<sup>10+</sup>
574getCurrentFoldCreaseRegion(): FoldCreaseRegion
575
576在当前显示模式下获取折叠折痕区域。
577
578**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
579
580**系统能力:** SystemCapability.Window.SessionManager
581
582**返回值:**
583
584| 类型 | 说明 |
585| ----------------------------------------------- | ------------------------------------------------------- |
586| [FoldCreaseRegion](#foldcreaseregion10) | FoldCreaseRegion对象,返回设备在当前显示模式下的折叠折痕区域。 |
587
588**错误码:**
589
590以下错误码的详细介绍请参见[屏幕错误码](errorcode-display.md)。
591
592| 错误码ID | 错误信息 |
593| ------- | ----------------------- |
594| 1400003 | This display manager service works abnormally. |
595
596**示例:**
597
598```ts
599import { display } from '@kit.ArkUI';
600
601let data: display.FoldCreaseRegion = display.getCurrentFoldCreaseRegion();
602console.info('Succeeded in obtaining current fold crease region. Data: ' + JSON.stringify(data));
603```
604
605## display.on('foldStatusChange')<sup>10+</sup>
606
607on(type: 'foldStatusChange', callback: Callback&lt;FoldStatus&gt;): void
608
609开启折叠设备折叠状态变化的监听。
610
611本接口监听设备物理折叠状态的变化,如果要监听屏幕显示模式的变化,需要使用[display.on('foldDisplayModeChange')](#displayonfolddisplaymodechange10)接口。
612
613两者存在差异,时序上物理折叠状态变化在前,底层会根据物理折叠状态匹配屏幕显示模式状态。
614
615若需监听当前显示内容是显示在折叠设备的内屏还是外屏,请使用[display.on('foldDisplayModeChange')](#displayonfolddisplaymodechange10)。
616
617**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
618
619**系统能力:** SystemCapability.Window.SessionManager
620
621**参数:**
622
623| 参数名   | 类型                                       | 必填 | 说明                                                    |
624| -------- |------------------------------------------| ---- | ------------------------------------------------------- |
625| type     | string                                   | 是   | 监听事件,固定为'foldStatusChange',表示折叠设备折叠状态发生变化。 |
626| callback | Callback&lt;[FoldStatus](#foldstatus10)&gt; | 是   | 回调函数。表示折叠设备折叠状态。 |
627
628**错误码:**
629
630以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[屏幕错误码](errorcode-display.md)。
631
632| 错误码ID | 错误信息 |
633| ------- | ----------------------- |
634| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.|
635| 1400003 | This display manager service works abnormally. |
636
637**示例:**
638
639```ts
640import { Callback } from '@kit.BasicServicesKit';
641
642/**
643 * 注册监听的callback参数要采用对象传递.
644 * 若使用匿名函数注册,每次调用会创建一个新的底层对象,引起内存泄漏问题。
645*/
646let callback: Callback<display.FoldStatus> = (data: display.FoldStatus) => {
647  console.info('Listening enabled. Data: ' + JSON.stringify(data));
648};
649display.on('foldStatusChange', callback);
650```
651
652## display.off('foldStatusChange')<sup>10+</sup>
653
654off(type: 'foldStatusChange', callback?: Callback&lt;FoldStatus&gt;): void
655
656关闭折叠设备折叠状态变化的监听。
657
658**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
659
660**系统能力:** SystemCapability.Window.SessionManager
661
662**参数:**
663
664| 参数名   | 类型                                       | 必填 | 说明                                                    |
665| -------- |------------------------------------------| ---- | ------------------------------------------------------- |
666| type     | string                                   | 是   | 监听事件,固定为'foldStatusChange',表示折叠设备折叠状态发生变化。 |
667| callback | Callback&lt;[FoldStatus](#foldstatus10)&gt; | 否   | 需要取消注册的回调函数。表示折叠设备折叠状态。若无此参数,则取消注册折叠状态变化监听的所有回调函数。 |
668
669**错误码:**
670
671以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[屏幕错误码](errorcode-display.md)。
672
673| 错误码ID | 错误信息 |
674| ------- | ----------------------- |
675| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.|
676| 1400003 | This display manager service works abnormally. |
677
678**示例:**
679
680```ts
681
682// 如果通过on注册多个callback,同时关闭所有callback监听
683display.off('foldStatusChange');
684
685let callback: Callback<display.FoldStatus> = (data: display.FoldStatus) => {
686  console.info('unregistering FoldStatus changes callback. Data: ' + JSON.stringify(data));
687};
688// 关闭传入的callback监听
689display.off('foldStatusChange', callback);
690```
691
692## display.on('foldAngleChange')<sup>12+</sup>
693
694on(type: 'foldAngleChange', callback: Callback&lt;Array&lt;number&gt;&gt;): void
695
696开启折叠设备折叠角度变化的监听。如果是双折轴设备,则有两个角度值;在充电口朝下的状态下,从右到左分别是折轴一和折轴二。
697
698**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
699
700**系统能力:** SystemCapability.Window.SessionManager
701
702**参数:**
703
704| 参数名   | 类型                                      | 必填 | 说明                                                    |
705| -------- |------------------------------------------| ---- | ------------------------------------------------------- |
706| type     | string                                   | 是 | 监听事件,固定为'foldAngleChange',表示折叠设备折叠角度发生变化。|
707| callback | Callback&lt;Array&lt;number&gt;&gt; | 是 | 回调函数。表示折叠设备屏幕折叠角度值(0度~180度)。如果是双折轴设备,则数组返回两个角度值,第一个值是折轴一的折叠角度值,第二个值是折轴二的折叠角度值。|
708
709**错误码:**
710
711以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[屏幕错误码](errorcode-display.md)。
712
713| 错误码ID | 错误信息 |
714| ------- | ----------------------- |
715| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.|
716| 1400003 | This display manager service works abnormally. |
717
718**示例:**
719
720```ts
721import { Callback } from '@kit.BasicServicesKit';
722
723let callback: Callback<Array<number>> = (angles: Array<number>) => {
724  console.info('Listening fold angles length: ' + angles.length);
725};
726display.on('foldAngleChange', callback);
727```
728
729## display.off('foldAngleChange')<sup>12+</sup>
730
731off(type: 'foldAngleChange', callback?: Callback&lt;Array&lt;number&gt;&gt;): void
732
733关闭折叠设备折叠角度变化的监听。
734
735**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
736
737**系统能力:** SystemCapability.Window.SessionManager
738
739**参数:**
740
741| 参数名   | 类型                                       | 必填 | 说明                                                    |
742| -------- |-------------------------------------------| ---- | ------------------------------------------------------- |
743| type     | string                                    | 是  | 监听事件,固定为'foldAngleChange'表示折叠设备折叠角度发生变化。|
744| callback | Callback&lt;Array&lt;number&gt;&gt; | 否  | 需要取消注册的回调函数。表示折叠设备屏幕折叠角度值(0度~180度)。若无此参数,则取消注册折叠角度变化监听的所有回调函数。|
745
746**错误码:**
747
748以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[屏幕错误码](errorcode-display.md)。
749
750| 错误码ID | 错误信息 |
751| ------- | ----------------------- |
752| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.|
753| 1400003 | This display manager service works abnormally. |
754
755**示例:**
756
757```ts
758display.off('foldAngleChange');
759```
760
761## display.on('captureStatusChange')<sup>12+</sup>
762
763on(type: 'captureStatusChange', callback: Callback&lt;boolean&gt;): void
764
765开启屏幕截屏、投屏、录屏状态变化的监听。
766
767**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
768
769**系统能力:** SystemCapability.Window.SessionManager
770
771**参数:**
772
773| 参数名   | 类型                                       | 必填 | 说明                                                    |
774| -------- |-------------------------------------------| ---- | ------------------------------------------------------- |
775| type     | string                                   | 是 | 监听事件,固定为'captureStatusChange'表示设备截屏、投屏或者录屏状态发生变化。|
776| callback | Callback&lt;boolean&gt; | 是 | 回调函数。表示设备截屏、投屏、录屏状态发生变化。true表示设备开始截屏、投屏或者录屏,false表示结束截屏、投屏、录屏。|
777
778**错误码:**
779
780以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[屏幕错误码](errorcode-display.md)。
781
782| 错误码ID | 错误信息 |
783| ------- | ----------------------- |
784| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.|
785| 1400003 | This display manager service works abnormally. |
786
787**示例:**
788
789```ts
790import { Callback } from '@kit.BasicServicesKit';
791
792let callback: Callback<boolean> = (captureStatus: boolean) => {
793  console.info('Listening capture status: ' + captureStatus);
794};
795display.on('captureStatusChange', callback);
796```
797
798## display.off('captureStatusChange')<sup>12+</sup>
799
800off(type: 'captureStatusChange', callback?: Callback&lt;boolean&gt;): void
801
802关闭屏幕截屏、投屏、录屏状态变化的监听。
803
804**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
805
806**系统能力:** SystemCapability.Window.SessionManager
807
808**参数:**
809
810| 参数名   | 类型                                       | 必填 | 说明                                                    |
811| -------- |-------------------------------------------| ---- | ------------------------------------------------------- |
812| type     | string                                   | 是 | 监听事件,固定为'captureStatusChange'表示设备截屏、投屏、录屏状态发生变化。|
813| callback | Callback&lt;boolean&gt; | 否 | 需要取消注册的回调函数。表示设备截屏、投屏、录屏状态发生变化。true表示设备开始截屏、投屏或者录屏,false表示结束截屏、投屏、录屏。若无此参数,则取消注册截屏、投屏、录屏状态变化监听的所有回调函数。|
814
815**错误码:**
816
817以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[屏幕错误码](errorcode-display.md)。
818
819| 错误码ID | 错误信息 |
820| ------- | ----------------------- |
821| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.|
822| 1400003 | This display manager service works abnormally. |
823
824**示例:**
825
826```ts
827display.off('captureStatusChange');
828```
829
830## display.isCaptured<sup>12+</sup>
831isCaptured(): boolean
832
833检查设备是否正在截屏、投屏、录屏。
834
835**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
836
837**系统能力:** SystemCapability.Window.SessionManager
838
839**返回值:**
840
841| 类型 | 说明 |
842| ----------------------------------------------- | ------------------------------------------------------- |
843| boolean | boolean值,返回当前设备是否有截屏、投屏或者录屏。true表示有截屏、投屏、录屏,否则返回false。|
844
845**错误码:**
846
847以下错误码的详细介绍请参见[屏幕错误码](errorcode-display.md)。
848
849| 错误码ID | 错误信息 |
850| ------- | ----------------------- |
851| 1400003 | This display manager service works abnormally. |
852
853**示例:**
854
855```ts
856import { display } from '@kit.ArkUI';
857
858let ret: boolean = false;
859ret = display.isCaptured();
860```
861
862## display.on('foldDisplayModeChange')<sup>10+</sup>
863
864on(type: 'foldDisplayModeChange', callback: Callback&lt;FoldDisplayMode&gt;): void
865
866开启折叠设备屏幕显示模式变化的监听。
867
868本接口监听设备屏幕显示模式的变化,如果要监听设备物理折叠状态的变化,需要使用[display.on('foldStatusChange')](#displayonfoldstatuschange10)接口。
869
870两者存在差异,时序上物理折叠状态变化在前,底层会根据物理折叠状态匹配屏幕显示模式状态。
871
872**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
873
874**系统能力:** SystemCapability.Window.SessionManager
875
876**参数:**
877
878| 参数名   | 类型                                       | 必填 | 说明                                                    |
879| -------- |------------------------------------------| ---- | ------------------------------------------------------- |
880| type     | string                                   | 是   | 监听事件,固定为'foldDisplayModeChange',表示折叠设备屏幕显示模式发生变化。 |
881| callback | Callback&lt;[FoldDisplayMode](#folddisplaymode10)&gt; | 是   | 回调函数。表示折叠设备屏幕显示模式。 |
882
883**错误码:**
884
885以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[屏幕错误码](errorcode-display.md)。
886
887| 错误码ID | 错误信息 |
888| ------- | ----------------------- |
889| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.|
890| 1400003 | This display manager service works abnormally. |
891
892**示例:**
893
894```ts
895import { Callback } from '@kit.BasicServicesKit';
896
897/**
898 * 注册监听的callback参数要采用对象传递.
899 * 若使用匿名函数注册,每次调用会创建一个新的底层对象,引起内存泄漏问题。
900*/
901let callback: Callback<display.FoldDisplayMode> = (data: display.FoldDisplayMode) => {
902  console.info('Listening enabled. Data: ' + JSON.stringify(data));
903};
904display.on('foldDisplayModeChange', callback);
905```
906
907## display.off('foldDisplayModeChange')<sup>10+</sup>
908
909off(type: 'foldDisplayModeChange', callback?: Callback&lt;FoldDisplayMode&gt;): void
910
911关闭折叠设备屏幕显示模式变化的监听。
912
913**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
914
915**系统能力:** SystemCapability.Window.SessionManager
916
917**参数:**
918
919| 参数名   | 类型                                       | 必填 | 说明                                                    |
920| -------- |------------------------------------------| ---- | ------------------------------------------------------- |
921| type     | string                                   | 是   | 监听事件,固定为'foldDisplayModeChange',表示折叠设备屏幕显示模式发生变化。 |
922| callback | Callback&lt;[FoldDisplayMode](#folddisplaymode10)&gt; | 否   | 需要取消注册的回调函数。表示折叠设备屏幕显示模式。若无此参数,则取消注册屏幕显示模式变化监听的所有回调函数。 |
923
924**错误码:**
925
926以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[屏幕错误码](errorcode-display.md)。
927
928| 错误码ID | 错误信息 |
929| ------- | ----------------------- |
930| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.|
931| 1400003 | This display manager service works abnormally. |
932
933**示例:**
934
935```ts
936
937// 如果通过on注册多个callback,同时关闭所有callback监听
938display.off('foldDisplayModeChange');
939
940let callback: Callback<display.FoldDisplayMode> = (data: display.FoldDisplayMode) => {
941  console.info('unregistering FoldDisplayMode changes callback. Data: ' + JSON.stringify(data));
942};
943// 关闭传入的callback监听
944display.off('foldDisplayModeChange', callback);
945```
946
947
948## display.getDefaultDisplay<sup>(deprecated)</sup>
949
950getDefaultDisplay(callback: AsyncCallback&lt;Display&gt;): void
951
952获取当前默认的display对象,使用callback异步回调。
953
954> **说明:**
955>
956> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[getDefaultDisplaySync()](#displaygetdefaultdisplaysync9)。
957
958**系统能力:** SystemCapability.WindowManager.WindowManager.Core
959
960**参数:**
961
962| 参数名 | 类型 | 必填 | 说明 |
963| -------- | -------- | -------- | -------- |
964| callback | AsyncCallback&lt;[Display](#display)&gt; | 是 | 回调函数。返回当前默认的display对象。 |
965
966**示例:**
967
968```ts
969import { BusinessError } from '@kit.BasicServicesKit';
970
971let displayClass: display.Display | null = null;
972display.getDefaultDisplay((err: BusinessError, data: display.Display) => {
973  const errCode: number = err.code;
974  if (errCode) {
975    console.error(`Failed to obtain the default display object. Code: ${err.code}, message: ${err.message}`);
976    return;
977  }
978  console.info('Succeeded in obtaining the default display object. Data:' + JSON.stringify(data));
979  displayClass = data;
980});
981```
982
983## display.getDefaultDisplay<sup>(deprecated)</sup>
984
985getDefaultDisplay(): Promise&lt;Display&gt;
986
987获取当前默认的display对象,使用Promise异步回调。
988
989> **说明:**
990>
991> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[getDefaultDisplaySync()](#displaygetdefaultdisplaysync9)。
992
993**系统能力:** SystemCapability.WindowManager.WindowManager.Core
994
995**返回值:**
996
997| 类型                               | 说明                                           |
998| ---------------------------------- | ---------------------------------------------- |
999| Promise&lt;[Display](#display)&gt; | Promise对象。返回当前默认的display对象。 |
1000
1001**示例:**
1002
1003```ts
1004import { BusinessError } from '@kit.BasicServicesKit';
1005
1006let displayClass: display.Display | null = null;
1007let promise: Promise<display.Display> = display.getDefaultDisplay();
1008promise.then((data: display.Display) => {
1009  displayClass = data;
1010  console.info('Succeeded in obtaining the default display object. Data:' + JSON.stringify(data));
1011}).catch((err: BusinessError) => {
1012  console.error(`Failed to obtain the default display object. Code: ${err.code}, message: ${err.message}`);
1013});
1014```
1015
1016## display.getAllDisplay<sup>(deprecated)</sup>
1017
1018getAllDisplay(callback: AsyncCallback&lt;Array&lt;Display&gt;&gt;): void
1019
1020获取当前所有的display对象,使用callback异步回调。
1021
1022> **说明:**
1023>
1024> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[getAllDisplays()](#displaygetalldisplays9)。
1025
1026**系统能力:** SystemCapability.WindowManager.WindowManager.Core
1027
1028**参数:**
1029
1030| 参数名   | 类型                                                 | 必填 | 说明                            |
1031| -------- | ---------------------------------------------------- | ---- | ------------------------------- |
1032| callback | AsyncCallback&lt;Array&lt;[Display](#display)&gt;&gt; | 是   | 回调函数。返回当前所有的display对象。 |
1033
1034**示例:**
1035
1036```ts
1037import { BusinessError } from '@kit.BasicServicesKit';
1038
1039display.getAllDisplay((err: BusinessError, data: Array<display.Display>) => {
1040  const errCode: number = err.code;
1041  if (errCode) {
1042    console.error(`Failed to obtain all the display objects. Code: ${err.code}, message: ${err.message}`);
1043    return;
1044  }
1045  console.info('Succeeded in obtaining all the display objects. Data: ' + JSON.stringify(data));
1046});
1047```
1048
1049## display.getAllDisplay<sup>(deprecated)</sup>
1050
1051getAllDisplay(): Promise&lt;Array&lt;Display&gt;&gt;
1052
1053获取当前所有的display对象,使用Promise异步回调。
1054
1055> **说明:**
1056>
1057> 从 API version 7开始支持,从API version 9开始废弃,推荐使用[getAllDisplays()](#displaygetalldisplays9-1)。
1058
1059**系统能力:** SystemCapability.WindowManager.WindowManager.Core
1060
1061**返回值:**
1062
1063| 类型                                            | 说明                                                    |
1064| ----------------------------------------------- | ------------------------------------------------------- |
1065| Promise&lt;Array&lt;[Display](#display)&gt;&gt; | Promise对象。返回当前所有的display对象。 |
1066
1067**示例:**
1068
1069```ts
1070import { BusinessError } from '@kit.BasicServicesKit';
1071
1072let promise: Promise<Array<display.Display>> = display.getAllDisplay();
1073promise.then((data: Array<display.Display>) => {
1074  console.info('Succeeded in obtaining all the display objects. Data: ' + JSON.stringify(data));
1075}).catch((err: BusinessError) => {
1076  console.error(`Failed to obtain all the display objects. Code: ${err.code}, message: ${err.message}`);
1077});
1078```
1079
1080## Display
1081屏幕实例。描述display对象的属性和方法。
1082
1083下列API示例中都需先使用[getAllDisplays()](#displaygetalldisplays9)、[getDefaultDisplaySync()](#displaygetdefaultdisplaysync9)中的任一方法获取到Display实例,再通过此实例调用对应方法。
1084
1085### 属性
1086
1087**系统能力:** SystemCapability.WindowManager.WindowManager.Core
1088
1089| 名称 | 类型 | 只读 | 可选 | 说明                                                                                                            |
1090| -------- | -------- | -------- | -------- |---------------------------------------------------------------------------------------------------------------|
1091| id | number | 是 | 否 | 显示设备的id号,该参数应为大于等于0的整数。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                             |
1092| name | string | 是 | 否 | 显示设备的名称。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                                      |
1093| alive | boolean | 是 | 否 | 显示设备是否启用。true表示设备启用,false表示设备未启用。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                                     |
1094| state | [DisplayState](#displaystate) | 是 | 否 | 显示设备的状态。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                                      |
1095| refreshRate | number | 是 | 否 | 显示设备的刷新率,该参数应为整数,单位为hz。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                             |
1096| rotation | number | 是 | 否 | 显示设备的屏幕顺时针旋转角度。<br>值为0时,表示显示设备屏幕顺时针旋转为0°;<br>值为1时,表示显示设备屏幕顺时针旋转为90°;<br>值为2时,表示显示设备屏幕顺时针旋转为180°;<br>值为3时,表示显示设备屏幕顺时针旋转为270°。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
1097| width | number | 是 | 否 | 显示设备的屏幕宽度,单位为px,该参数应为整数。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。                                                                                        |
1098| height | number | 是 | 否 | 显示设备的屏幕高度,单位为px,该参数应为整数。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。                                                                                        |
1099| densityDPI | number | 是 | 否 | 显示设备屏幕的物理像素密度,表示每英寸上的像素点数。该参数为浮点数,单位为px。一般取值160.0、480.0等,实际能取到的值取决于不同设备设置里提供的可选值。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                   |
1100| orientation<sup>10+</sup> | [Orientation](#orientation10) | 是 | 否 | 表示屏幕当前显示的方向。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                                  |
1101| densityPixels | number | 是 | 否 | 显示设备逻辑像素的密度,代表物理像素与逻辑像素的缩放系数,计算方式为:![densityPixels](figures/densityPixels.jpg)<br>该参数为浮点数,受densityDPI范围限制,取值范围在[0.5,4.0]。一般取值1.0、3.0等,实际取值取决于不同设备提供的densityDPI。<br>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。                                                                  |
1102| scaledDensity | number | 是 | 否 | 显示设备的显示字体的缩放因子。该参数为浮点数,通常与densityPixels相同。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                    |
1103| xDPI | number | 是 | 否 | x方向中每英寸屏幕的确切物理像素值,该参数为浮点数。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                    |
1104| yDPI | number | 是 | 否 | y方向中每英寸屏幕的确切物理像素值,该参数为浮点数。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                    |
1105| colorSpaces<sup>11+</sup> | Array<[colorSpaceManager.ColorSpace](../apis-arkgraphics2d/js-apis-colorSpaceManager.md)> | 是 | 否 | 显示设备支持的所有色域类型。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                                |
1106| hdrFormats<sup>11+</sup> | Array<[hdrCapability.HDRFormat](../apis-arkgraphics2d/js-apis-hdrCapability.md)> | 是 | 否 | 显示设备支持的所有HDR格式。<br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                               |
1107| availableWidth<sup>12+</sup> | number | 是 | 否 | 2in1设备上屏幕的可用区域宽度,单位为px,该参数为大于0的整数。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                    |
1108| availableHeight<sup>12+</sup> | number | 是 | 否 | 2in1设备上屏幕的可用区域高度,单位为px,该参数为大于0的整数。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。                                                                                    |
1109
1110### getCutoutInfo<sup>9+</sup>
1111getCutoutInfo(callback: AsyncCallback&lt;CutoutInfo&gt;): void
1112
1113获取挖孔屏、刘海屏、瀑布屏等不可用屏幕区域信息。使用callback异步回调。建议应用布局规避该区域。
1114
1115**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1116
1117**系统能力:** SystemCapability.WindowManager.WindowManager.Core
1118
1119**参数:**
1120
1121| 参数名      | 类型                        | 必填 | 说明                                                         |
1122| ----------- | --------------------------- | ---- | ------------------------------------------------------------ |
1123| callback    | AsyncCallback&lt;[CutoutInfo](#cutoutinfo9)&gt;   | 是   | 回调函数。返回描述不可用屏幕区域的CutoutInfo对象。 |
1124
1125**错误码:**
1126
1127以下错误码的详细介绍请参见[屏幕错误码](errorcode-display.md)。
1128
1129| 错误码ID | 错误信息 |
1130| ------- | ----------------------- |
1131| 1400001 | Invalid display or screen. |
1132
1133**示例:**
1134
1135```ts
1136import { BusinessError } from '@kit.BasicServicesKit';
1137
1138let displayClass: display.Display | null = null;
1139displayClass = display.getDefaultDisplaySync();
1140
1141displayClass.getCutoutInfo((err: BusinessError, data: display.CutoutInfo) => {
1142  const errCode: number = err.code;
1143  if (errCode) {
1144    console.error(`Failed to get cutoutInfo. Code: ${err.code}, message: ${err.message}`);
1145    return;
1146  }
1147  console.info('Succeeded in getting cutoutInfo. data: ' + JSON.stringify(data));
1148});
1149```
1150### getCutoutInfo<sup>9+</sup>
1151getCutoutInfo(): Promise&lt;CutoutInfo&gt;
1152
1153获取挖孔屏、刘海屏、瀑布屏等不可用屏幕区域信息。使用Promise异步回调。建议应用布局规避该区域。
1154
1155**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1156
1157**系统能力:** SystemCapability.WindowManager.WindowManager.Core
1158
1159**返回值:**
1160
1161| 类型                | 说明                      |
1162| ------------------- | ------------------------- |
1163| Promise&lt;[CutoutInfo](#cutoutinfo9)&gt; | Promise对象。返回描述不可用屏幕区域的CutoutInfo对象。 |
1164
1165**错误码:**
1166
1167以下错误码的详细介绍请参见[屏幕错误码](errorcode-display.md)。
1168
1169| 错误码ID | 错误信息 |
1170| ------- | ----------------------- |
1171| 1400001 | Invalid display or screen. |
1172
1173**示例:**
1174
1175```ts
1176import { BusinessError } from '@kit.BasicServicesKit';
1177
1178let displayClass: display.Display | null = null;
1179displayClass = display.getDefaultDisplaySync();
1180let promise: Promise<display.CutoutInfo> = displayClass.getCutoutInfo();
1181promise.then((data: display.CutoutInfo) => {
1182  console.info('Succeeded in getting cutoutInfo. Data: ' + JSON.stringify(data));
1183}).catch((err: BusinessError) => {
1184  console.error(`Failed to obtain all the display objects. Code: ${err.code}, message: ${err.message}`);
1185});
1186```
1187
1188### getAvailableArea<sup>12+</sup>
1189getAvailableArea(): Promise&lt;Rect&gt;
1190
1191获取当前设备屏幕的可用区域,使用Promise异步回调。
1192
1193**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1194
1195**系统能力:** SystemCapability.Window.SessionManager
1196
1197**返回值:**
1198
1199| 类型                | 说明                      |
1200| ------------------- | ------------------------- |
1201| Promise&lt;[Rect](#rect9)&gt; | Promise对象。返回当前屏幕可用矩形区域。 |
1202
1203**错误码:**
1204
1205以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[屏幕错误码](errorcode-display.md)。
1206
1207| 错误码ID | 错误信息 |
1208| ------- | ----------------------- |
1209| 801 | Capability not supported. Failed to call the API due to limited device capabilities. |
1210| 1400001 | Invalid display or screen. |
1211
1212**示例:**
1213
1214```ts
1215import { BusinessError } from '@kit.BasicServicesKit';
1216import { display } from '@kit.ArkUI';
1217
1218let displayClass: display.Display | null = null;
1219try {
1220  displayClass = display.getDefaultDisplaySync();
1221  let promise = displayClass.getAvailableArea();
1222  promise.then((data) => {
1223    console.info('Succeeded get the available area in this display. data: ' + JSON.stringify(data));
1224  }).catch((err: BusinessError) => {
1225    console.error(`Failed to get the available area in this display. Code: ${err.code}, message: ${err.message}`);
1226  })
1227} catch (exception) {
1228  console.error(`Failed to obtain the default display object. Code: ${exception.code}, message: ${exception.message}`);
1229}
1230```
1231
1232### on('availableAreaChange')<sup>12+</sup>
1233on(type: 'availableAreaChange', callback: Callback&lt;Rect&gt;): void
1234
1235开启当前设备屏幕的可用区域监听。当前设备屏幕有可用区域变化时,触发回调函数,返回可用区域。
1236
1237**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1238
1239**系统能力:** SystemCapability.Window.SessionManager
1240
1241**参数:**
1242
1243| 参数名   | 类型                                       | 必填 | 说明                                                    |
1244| -------- |------------------------------------------| ---- | ------------------------------------------------------- |
1245| type     | string                                   | 是   | 监听事件。固定为'availableAreaChange',表示屏幕可用区域变更。 |
1246| callback | Callback&lt;[Rect](#rect9)&gt; | 是   | 回调函数。返回改变后的可用区域。 |
1247
1248**错误码:**
1249
1250以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[屏幕错误码](errorcode-display.md)。
1251
1252| 错误码ID | 错误信息 |
1253| ------- | ----------------------- |
1254| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.|
1255| 801 | Capability not supported. Failed to call the API due to limited device capabilities. |
1256| 1400003 | This display manager service works abnormally. |
1257
1258**示例:**
1259
1260```ts
1261import { Callback } from '@kit.BasicServicesKit';
1262import { display } from '@kit.ArkUI';
1263
1264let callback: Callback<display.Rect> = (data: display.Rect) => {
1265  console.info('Listening enabled. Data: ' + JSON.stringify(data));
1266};
1267let displayClass: display.Display | null = null;
1268try {
1269  displayClass = display.getDefaultDisplaySync();
1270  displayClass.on("availableAreaChange", callback);
1271} catch (exception) {
1272  console.error(`Failed to register callback. Code: ${exception.code}, message: ${exception.message}`);
1273}
1274```
1275
1276### off('availableAreaChange')<sup>12+</sup>
1277
1278off(type: 'availableAreaChange', callback?: Callback&lt;Rect&gt;): void
1279
1280关闭当前设备屏幕可用区域变化的监听。
1281
1282**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1283
1284**系统能力:** SystemCapability.Window.SessionManager
1285
1286**参数:**
1287
1288| 参数名   | 类型                                       | 必填 | 说明                                                    |
1289| -------- |------------------------------------------| ---- | ------------------------------------------------------- |
1290| type     | string                                   | 是   | 监听事件,固定为'availableAreaChange',表示屏幕可用区域变更。 |
1291| callback | Callback&lt;[Rect](#rect9)&gt; | 否   | 需要取消注册的回调函数。返回改变后的可用区域。若无此参数,则取消注册屏幕可用区域变化监听的所有回调函数。 |
1292
1293**错误码:**
1294
1295以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[屏幕错误码](errorcode-display.md)。
1296
1297| 错误码ID | 错误信息 |
1298| ------- | ----------------------- |
1299| 401     | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.|
1300| 801 | Capability not supported. Failed to call the API due to limited device capabilities. |
1301| 1400003 | This display manager service works abnormally. |
1302
1303**示例:**
1304
1305```ts
1306import { Callback } from '@kit.BasicServicesKit';
1307import { display } from '@kit.ArkUI';
1308
1309let callback: Callback<display.Rect> = (data: display.Rect) => {
1310  console.info('Listening enabled. Data: ' + JSON.stringify(data));
1311};
1312let displayClass: display.Display | null = null;
1313try {
1314  displayClass = display.getDefaultDisplaySync();
1315  displayClass.off("availableAreaChange", callback);
1316} catch (exception) {
1317  console.error(`Failed to unregister callback. Code: ${exception.code}, message: ${exception.message}`);
1318}
1319```