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>• 对于内外屏均可作为主屏幕使用的折叠产品,内屏显示状态为FOLD_DISPLAY_MODE_FULL,外屏显示状态为FOLD_DISPLAY_MODE_MAIN。<br> 90>• 对于外屏只有简单的辅助显示作用的折叠产品,内屏显示状态为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<Array<DisplayPhysicalResolution>> 211 212获取当前折叠设备的显示模式以及对应的物理屏幕分辨率信息对象。 213 214**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 215 216**系统能力:** SystemCapability.WindowManager.WindowManager.Core 217 218**返回值:** 219 220| 类型 | 说明 | 221| ----------------------------------------------- | ------------------------------------------------------- | 222| Promise<Array<[DisplayPhysicalResolution](#displayphysicalresolution12)>> | 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<Array<Display>>): 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<Array<[Display](#display)>> | 是 | 回调函数。返回当前所有的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<Array<Display>> 364 365获取当前所有的display对象,使用Promise异步回调。 366 367**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 368 369**系统能力:** SystemCapability.WindowManager.WindowManager.Core 370 371**返回值:** 372 373| 类型 | 说明 | 374| ----------------------------------------------- | ------------------------------------------------------- | 375| Promise<Array<[Display](#display)>> | 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<number>): 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<number> | 是 | 回调函数。返回监听到的显示设备的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<number>): 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<number> | 否 | 需要取消注册的回调函数。返回监听到的显示设备的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<FoldStatus>): 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<[FoldStatus](#foldstatus10)> | 是 | 回调函数。表示折叠设备折叠状态。 | 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<FoldStatus>): 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<[FoldStatus](#foldstatus10)> | 否 | 需要取消注册的回调函数。表示折叠设备折叠状态。若无此参数,则取消注册折叠状态变化监听的所有回调函数。 | 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<Array<number>>): 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<Array<number>> | 是 | 回调函数。表示折叠设备屏幕折叠角度值(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<Array<number>>): 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<Array<number>> | 否 | 需要取消注册的回调函数。表示折叠设备屏幕折叠角度值(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<boolean>): 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<boolean> | 是 | 回调函数。表示设备截屏、投屏、录屏状态发生变化。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<boolean>): 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<boolean> | 否 | 需要取消注册的回调函数。表示设备截屏、投屏、录屏状态发生变化。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<FoldDisplayMode>): 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<[FoldDisplayMode](#folddisplaymode10)> | 是 | 回调函数。表示折叠设备屏幕显示模式。 | 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<FoldDisplayMode>): 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<[FoldDisplayMode](#folddisplaymode10)> | 否 | 需要取消注册的回调函数。表示折叠设备屏幕显示模式。若无此参数,则取消注册屏幕显示模式变化监听的所有回调函数。 | 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<Display>): 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<[Display](#display)> | 是 | 回调函数。返回当前默认的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<Display> 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<[Display](#display)> | 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<Array<Display>>): 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<Array<[Display](#display)>> | 是 | 回调函数。返回当前所有的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<Array<Display>> 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<Array<[Display](#display)>> | 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 | 是 | 否 | 显示设备逻辑像素的密度,代表物理像素与逻辑像素的缩放系数,计算方式为:<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<CutoutInfo>): void 1112 1113获取挖孔屏、刘海屏、瀑布屏等不可用屏幕区域信息。使用callback异步回调。建议应用布局规避该区域。 1114 1115**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1116 1117**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1118 1119**参数:** 1120 1121| 参数名 | 类型 | 必填 | 说明 | 1122| ----------- | --------------------------- | ---- | ------------------------------------------------------------ | 1123| callback | AsyncCallback<[CutoutInfo](#cutoutinfo9)> | 是 | 回调函数。返回描述不可用屏幕区域的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<CutoutInfo> 1152 1153获取挖孔屏、刘海屏、瀑布屏等不可用屏幕区域信息。使用Promise异步回调。建议应用布局规避该区域。 1154 1155**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1156 1157**系统能力:** SystemCapability.WindowManager.WindowManager.Core 1158 1159**返回值:** 1160 1161| 类型 | 说明 | 1162| ------------------- | ------------------------- | 1163| Promise<[CutoutInfo](#cutoutinfo9)> | 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<Rect> 1190 1191获取当前设备屏幕的可用区域,使用Promise异步回调。 1192 1193**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1194 1195**系统能力:** SystemCapability.Window.SessionManager 1196 1197**返回值:** 1198 1199| 类型 | 说明 | 1200| ------------------- | ------------------------- | 1201| Promise<[Rect](#rect9)> | 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<Rect>): 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<[Rect](#rect9)> | 是 | 回调函数。返回改变后的可用区域。 | 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<Rect>): 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<[Rect](#rect9)> | 否 | 需要取消注册的回调函数。返回改变后的可用区域。若无此参数,则取消注册屏幕可用区域变化监听的所有回调函数。 | 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```