1# WindowManager 2 3## 概述 4 5提供应用窗口的管理能力。 6 7**起始版本:** 12 8 9 10## 汇总 11 12 13### 文件 14 15| 名称 | 描述 | 16| -------- | -------- | 17| [oh_window.h](oh__window_8h.md) | 定义窗口管理的相关接口,主要用于设置和获取指定窗口的属性,以及设置指定窗口的状态栏样式、导航栏样式。 | 18| [oh_window_comm.h](oh__window__comm_8h.md) | 提供窗口的公共枚举、公共定义等。 | 19| [oh_window_event_filter.h](oh__window__event__filter_8h.md) | 定义窗口管理按键事件过滤的接口,当多模输入的事件经过窗口时,可以通过过滤接口拦截事件不让事件往下分发。 | 20 21 22### 结构体 23 24| 名称 | 描述 | 25| -------- | -------- | 26| struct [WindowManager_Rect](_window_manager___rect.md) | 定义窗口矩形结构体,包含窗口位置和宽高信息。 | 27| struct [WindowManager_WindowProperties](_window_manager___window_properties.md) | 窗口属性。 | 28| struct [WindowManager_AvoidArea](_window_manager___avoid_area.md) | 定义避让区域结构体。 | 29 30 31### 类型定义 32 33| 名称 | 描述 | 34| -------- | -------- | 35| typedef enum [WindowManager_ErrorCode](#windowmanager_errorcode) [WindowManager_ErrorCode](#windowmanager_errorcode) | 窗口管理接口返回状态码枚举。 | 36| typedef bool(\* [OH_NativeWindowManager_KeyEventFilter](#oh_nativewindowmanager_keyeventfilter)) (Input_KeyEvent \*keyEvent) | 定义多模按键的过滤函数。 | 37| typedef bool(\* [OH_NativeWindowManager_MouseEventFilter](#oh_nativewindowmanager_mouseeventfilter)) (Input_MouseEvent \*mouseEvent) | 定义多模鼠标事件的过滤函数。 | 38| typedef bool(\* [OH_NativeWindowManager_TouchEventFilter](#oh_nativewindowmanager_toucheventfilter)) (Input_TouchEvent \*touchEvent) | 定义多模触摸事件的过滤函数。 | 39 40 41### 枚举 42 43| 名称 | 描述 | 44| -------- | -------- | 45| [WindowManager_ErrorCode](#windowmanager_errorcode-1) {<br/>OK = 0, WINDOW_MANAGER_ERRORCODE_NO_PERMISSION = 201, WINDOW_MANAGER_ERRORCODE_INVALID_PARAM = 401, WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED = 801,<br/>INVAILD_WINDOW_ID = 1000, SERVICE_ERROR = 2000, WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL = 1300002, WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL = 1300003<br/>} | 窗口管理接口返回状态码枚举。 | 46| [WindowManager_AvoidAreaType](#windowmanager_avoidareatype) {<br/>WINDOW_MANAGER_AVOID_AREA_TYPE_SYSTEM = 0, WINDOW_MANAGER_AVOID_AREA_TYPE_CUTOUT = 1, WINDOW_MANAGER_AVOID_AREA_TYPE_SYSTEM_GESTURE = 2, WINDOW_MANAGER_AVOID_AREA_TYPE_KEYBOARD = 3,<br/>WINDOW_MANAGER_AVOID_AREA_TYPE_NAVIGATION_INDICATOR = 4<br/>} | 避让区域枚举类型。 | 47| [WindowManager_WindowType](#windowmanager_windowtype) { WINDOW_MANAGER_WINDOW_TYPE_APP = 0, WINDOW_MANAGER_WINDOW_TYPE_MAIN = 1, WINDOW_MANAGER_WINDOW_TYPE_FLOAT = 8, WINDOW_MANAGER_WINDOW_TYPE_DIALOG = 16 } | 窗口类型。 | 48 49 50### 函数 51 52| 名称 | 描述 | 53| -------- | -------- | 54| int32_t [OH_WindowManager_GetAllWindowLayoutInfoList](#oh_windowmanager_getallwindowlayoutinfolist) (int64_t displayId, [WindowManager_Rect](_window_manager___rect.md) \*\*windowLayoutInfoList, size_t \*windowLayoutInfoSize) | 获取指定屏幕上可见的窗口布局信息数组,按当前窗口层级排列,层级最高的对应数组下标为0。 | 55| void [OH_WindowManager_ReleaseAllWindowLayoutInfoList](#oh_windowmanager_releaseallwindowlayoutinfolist) ([WindowManager_Rect](_window_manager___rect.md) \*windowLayoutInfoList) | 释放窗口布局信息数组占用的内存。 | 56| int32_t [OH_WindowManager_SetWindowStatusBarEnabled](#oh_windowmanager_setwindowstatusbarenabled) (int32_t windowId, bool enabled, bool enableAnimation) | 设置指定窗口是否显示状态栏。 | 57| int32_t [OH_WindowManager_SetWindowStatusBarColor](#oh_windowmanager_setwindowstatusbarcolor) (int32_t windowId, int32_t color) | 设置指定窗口的状态栏内容颜色。 | 58| int32_t [OH_WindowManager_SetWindowNavigationBarEnabled](#oh_windowmanager_setwindownavigationbarenabled) (int32_t windowId, bool enabled, bool enableAnimation) | 设置指定窗口是否显示导航栏。 | 59| int32_t [OH_WindowManager_GetWindowAvoidArea](#oh_windowmanager_getwindowavoidarea) (int32_t windowId, [WindowManager_AvoidAreaType](#windowmanager_avoidareatype) type, [WindowManager_AvoidArea](_window_manager___avoid_area.md) \*avoidArea) | 获取指定窗口的避让区域。 | 60| [WindowManager_ErrorCode](#windowmanager_errorcode-1) [OH_WindowManager_IsWindowShown](#oh_windowmanager_iswindowshown) (int32_t windowId, bool \*isShow) | 判断指定窗口是否显示。 | 61| [WindowManager_ErrorCode](#windowmanager_errorcode-1) [OH_WindowManager_ShowWindow](#oh_windowmanager_showwindow) (int32_t windowId) | 显示指定窗口。 | 62| int32_t [OH_WindowManager_SetWindowTouchable](#oh_windowmanager_setwindowtouchable) (int32_t windowId, bool isTouchable) | 设置指定窗口是否可触。 | 63| int32_t [OH_WindowManager_SetWindowFocusable](#oh_windowmanager_setwindowfocusable) (int32_t windowId, bool isFocusable) | 设置指定窗口是否可获焦。 | 64| int32_t [OH_WindowManager_SetWindowBackgroundColor](#oh_windowmanager_setwindowbackgroundcolor) (int32_t windowId, const char \*color) | 设置指定窗口背景颜色。 | 65| int32_t [OH_WindowManager_SetWindowBrightness](#oh_windowmanager_setwindowbrightness) (int32_t windowId, float brightness) | 设置指定窗口的屏幕亮度。 | 66| int32_t [OH_WindowManager_SetWindowKeepScreenOn](#oh_windowmanager_setwindowkeepscreenon) (int32_t windowId, bool isKeepScreenOn) | 设置指定窗口是否开启屏幕常亮。 | 67| int32_t [OH_WindowManager_SetWindowPrivacyMode](#oh_windowmanager_setwindowprivacymode) (int32_t windowId, bool isPrivacy) | 设置指定窗口是否开启隐私模式。 | 68| int32_t [OH_WindowManager_GetWindowProperties](#oh_windowmanager_getwindowproperties) (int32_t windowId, [WindowManager_WindowProperties](_window_manager___window_properties.md) \*windowProperties) | 获取指定窗口属性。 | 69| int32_t [OH_WindowManager_Snapshot](#oh_windowmanager_snapshot) (int32_t windowId, OH_PixelmapNative \*pixelMap) | 获取指定窗口截图。 | 70| [WindowManager_ErrorCode](#windowmanager_errorcode-1) [OH_NativeWindowManager_RegisterKeyEventFilter](#oh_nativewindowmanager_registerkeyeventfilter) (int32_t windowId, [OH_NativeWindowManager_KeyEventFilter](#oh_nativewindowmanager_keyeventfilter) keyEventFilter) | 注册按键事件的过滤函数。 | 71| [WindowManager_ErrorCode](#windowmanager_errorcode-1) [OH_NativeWindowManager_UnregisterKeyEventFilter](#oh_nativewindowmanager_unregisterkeyeventfilter) (int32_t windowId) | 取消注册窗口的按键事件过滤函数。 | 72| [WindowManager_ErrorCode](#windowmanager_errorcode-1) [OH_NativeWindowManager_RegisterMouseEventFilter](#oh_nativewindowmanager_registermouseeventfilter) (int32_t windowId, [OH_NativeWindowManager_MouseEventFilter](#oh_nativewindowmanager_mouseeventfilter) mouseEventFilter) | 注册鼠标事件的过滤函数。 | 73| [WindowManager_ErrorCode](#windowmanager_errorcode-1) [OH_NativeWindowManager_UnregisterMouseEventFilter](#oh_nativewindowmanager_unregistermouseeventfilter) (int32_t windowId) | 取消注册窗口的鼠标事件过滤函数。 | 74| [WindowManager_ErrorCode](#windowmanager_errorcode-1) [OH_NativeWindowManager_RegisterTouchEventFilter](#oh_nativewindowmanager_registertoucheventfilter) (int32_t windowId, [OH_NativeWindowManager_TouchEventFilter](#oh_nativewindowmanager_toucheventfilter) touchEventFilter) | 注册触摸事件的过滤函数。 | 75| [WindowManager_ErrorCode](#windowmanager_errorcode-1) [OH_NativeWindowManager_UnregisterTouchEventFilter](#oh_nativewindowmanager_unregistertoucheventfilter) (int32_t windowId) | 取消注册窗口的触摸事件过滤函数。 | 76 77 78## 类型定义说明 79 80 81### OH_NativeWindowManager_KeyEventFilter 82 83``` 84typedef bool(* OH_NativeWindowManager_KeyEventFilter) (Input_KeyEvent *keyEvent) 85``` 86 87**描述** 88 89定义多模按键的过滤函数。 90 91**起始版本:** 12 92 93**参数:** 94 95| 名称 | 描述 | 96| -------- | -------- | 97| keyEvent | 多模按键事件,具体可见**Input_KeyEvent**,事件定义在oh_input_manager中。 | 98 99**返回:** 100 101返回是否过滤该事件,返回true窗口不再往下分发,返回false表示不拦截 102 103 104### OH_NativeWindowManager_MouseEventFilter 105 106``` 107typedef bool(* OH_NativeWindowManager_MouseEventFilter) (Input_MouseEvent *mouseEvent) 108``` 109 110**描述** 111 112定义多模鼠标事件的过滤函数。 113 114**起始版本:** 15 115 116**参数:** 117 118| 名称 | 描述 | 119| -------- | -------- | 120| mouseEvent | 多模鼠标事件,具体可见**Input_MouseEvent**,事件定义在oh_input_manager中。 | 121 122**返回:** 123 124返回是否过滤该事件。true表示过滤该事件,不会继续往下分发;false表示不过滤不拦截此事件,将会继续分发。 125 126 127### OH_NativeWindowManager_TouchEventFilter 128 129``` 130typedef bool(* OH_NativeWindowManager_TouchEventFilter) (Input_TouchEvent *touchEvent) 131``` 132 133**描述** 134 135定义多模触摸事件的过滤函数。 136 137**起始版本:** 15 138 139**参数:** 140 141| 名称 | 描述 | 142| -------- | -------- | 143| touchEvent | 多模触摸事件,具体可见**Input_TouchEvent**,事件定义在oh_input_manager中。 | 144 145**返回:** 146 147返回是否过滤该事件。true表示过滤该事件,不会继续往下分发;false表示不过滤不拦截此事件,将会继续分发。 148 149 150### WindowManager_ErrorCode 151 152``` 153typedef enum WindowManager_ErrorCode WindowManager_ErrorCode 154``` 155 156**描述** 157 158窗口管理接口返回状态码枚举。 159 160**起始版本:** 12 161 162 163## 枚举类型说明 164 165 166### WindowManager_AvoidAreaType 167 168``` 169enum WindowManager_AvoidAreaType 170``` 171 172**描述** 173 174避让区域枚举类型。 175 176**起始版本:** 15 177 178| 枚举值 | 描述 | 179| -------- | -------- | 180| WINDOW_MANAGER_AVOID_AREA_TYPE_SYSTEM | 系统避让区域。 | 181| WINDOW_MANAGER_AVOID_AREA_TYPE_CUTOUT | 刘海屏避让。 | 182| WINDOW_MANAGER_AVOID_AREA_TYPE_SYSTEM_GESTURE | 系统手势区域。 | 183| WINDOW_MANAGER_AVOID_AREA_TYPE_KEYBOARD | 键盘区域。 | 184| WINDOW_MANAGER_AVOID_AREA_TYPE_NAVIGATION_INDICATOR | 导航条区域。 | 185 186 187### WindowManager_ErrorCode 188 189``` 190enum WindowManager_ErrorCode 191``` 192 193**描述** 194 195窗口管理接口返回状态码枚举。 196 197**起始版本:** 12 198 199| 枚举值 | 描述 | 200| -------- | -------- | 201| OK | 成功。 | 202| WINDOW_MANAGER_ERRORCODE_NO_PERMISSION<sup>15+</sup> | 无权限。 | 203| WINDOW_MANAGER_ERRORCODE_INVALID_PARAM<sup>15+</sup> | 非法参数。 | 204| WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED<sup>15+</sup> | 设备不支持。 | 205| INVAILD_WINDOW_ID | 非法窗口ID。 | 206| SERVICE_ERROR | 服务异常。 | 207| WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL<sup>15+</sup> | 窗口状态异常。 | 208| WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL<sup>15+</sup> | 窗口管理器服务异常。 | 209 210 211### WindowManager_WindowType 212 213``` 214enum WindowManager_WindowType 215``` 216 217**描述** 218 219窗口类型。 220 221**起始版本:** 15 222 223| 枚举值 | 描述 | 224| -------- | -------- | 225| WINDOW_MANAGER_WINDOW_TYPE_APP | 子窗口。 | 226| WINDOW_MANAGER_WINDOW_TYPE_MAIN | 主窗口。 | 227| WINDOW_MANAGER_WINDOW_TYPE_FLOAT | 悬浮窗口。 | 228| WINDOW_MANAGER_WINDOW_TYPE_DIALOG | 模态窗口。 | 229 230 231## 函数说明 232 233### OH_WindowManager_GetAllWindowLayoutInfoList() 234 235``` 236int32_t OH_WindowManager_GetAllWindowLayoutInfoList (int64_t displayId, WindowManager_Rect** windowLayoutInfoList, size_t* windowLayoutInfoSize ) 237``` 238 239**描述** 240 241获取指定屏幕上可见的窗口布局信息数组,按当前窗口层级排列,层级最高的对应数组下标为0。 242 243**起始版本:** 17 244 245**参数:** 246 247| 名称 | 描述 | 248| -------- | -------- | 249| displayId | 指定屏幕的id。请通过窗口对象调用getWindowProperties接口(ArkTS接口)获取有效的屏幕id。 | 250| windowLayoutInfoList | 指定屏幕上可见的窗口布局信息数组的数组指针,作为出参使用。 | 251| windowLayoutInfoSize | 指定屏幕上可见的窗口布局信息数组长度的指针,作为出参使用。 | 252 253**返回:** 254 255返回结果代码。 256 257返回OK,表示函数调用成功,返回指定屏幕上可见的窗口布局信息数组的数组指针和数组长度的指针。 258 259返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 260 261返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示不支持功能。 262 263返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。 264 265### OH_WindowManager_ReleaseAllWindowLayoutInfoList() 266 267``` 268void OH_WindowManager_ReleaseAllWindowLayoutInfoList (WindowManager_Rect* windowLayoutInfoList) 269``` 270 271**描述** 272 273释放窗口布局信息数组占用的内存。 274 275**起始版本:** 17 276 277**参数:** 278 279| 名称 | 描述 | 280| -------- | -------- | 281| windowLayoutInfoList | 指定屏幕上可见的窗口布局信息数组的数组指针,可通过[OH_WindowManager_GetAllWindowLayoutInfoList](#oh_windowmanager_getallwindowlayoutinfolist)接口获取。 | 282 283 284### OH_NativeWindowManager_RegisterKeyEventFilter() 285 286``` 287WindowManager_ErrorCode OH_NativeWindowManager_RegisterKeyEventFilter (int32_t windowId, OH_NativeWindowManager_KeyEventFilter keyEventFilter ) 288``` 289 290**描述** 291 292注册按键事件的过滤函数。 293 294**起始版本:** 12 295 296**参数:** 297 298| 名称 | 描述 | 299| -------- | -------- | 300| windowId | 需要过滤按键事件的窗口ID。 | 301| keyEventFilter | 多模按键的过滤函数。 | 302 303**返回:** 304 305返回窗口管理接口的通用状态码,具体可见[WindowManager_ErrorCode](#windowmanager_errorcode)。 306 307 308### OH_NativeWindowManager_RegisterMouseEventFilter() 309 310``` 311WindowManager_ErrorCode OH_NativeWindowManager_RegisterMouseEventFilter (int32_t windowId, OH_NativeWindowManager_MouseEventFilter mouseEventFilter ) 312``` 313 314**描述** 315 316注册鼠标事件的过滤函数。 317 318**起始版本:** 15 319 320**参数:** 321 322| 名称 | 描述 | 323| -------- | -------- | 324| windowId | 需要过滤鼠标事件的窗口ID。 | 325| mouseEventFilter | 多模鼠标事件的过滤函数。 | 326 327**返回:** 328 329返回窗口管理接口的通用状态码,具体可见[WindowManager_ErrorCode](#windowmanager_errorcode)。 330 331 332### OH_NativeWindowManager_RegisterTouchEventFilter() 333 334``` 335WindowManager_ErrorCode OH_NativeWindowManager_RegisterTouchEventFilter (int32_t windowId, OH_NativeWindowManager_TouchEventFilter touchEventFilter ) 336``` 337 338**描述** 339 340注册触摸事件的过滤函数。 341 342**起始版本:** 15 343 344**参数:** 345 346| 名称 | 描述 | 347| -------- | -------- | 348| windowId | 需要过滤触摸事件的窗口ID。 | 349| touchEventFilter | 多模触摸事件的过滤函数。 | 350 351**返回:** 352 353返回窗口管理接口的通用状态码,具体可见[WindowManager_ErrorCode](#windowmanager_errorcode)。 354 355 356### OH_NativeWindowManager_UnregisterKeyEventFilter() 357 358``` 359WindowManager_ErrorCode OH_NativeWindowManager_UnregisterKeyEventFilter (int32_t windowId) 360``` 361 362**描述** 363 364取消注册窗口的按键事件过滤函数。 365 366**起始版本:** 12 367 368**参数:** 369 370| 名称 | 描述 | 371| -------- | -------- | 372| windowId | 需要取消过滤按键事件的窗口ID。 | 373 374**返回:** 375 376返回窗口管理接口的通用状态码,具体可见[WindowManager_ErrorCode](#windowmanager_errorcode)。 377 378 379### OH_NativeWindowManager_UnregisterMouseEventFilter() 380 381``` 382WindowManager_ErrorCode OH_NativeWindowManager_UnregisterMouseEventFilter (int32_t windowId) 383``` 384 385**描述** 386 387取消注册窗口的鼠标事件过滤函数。 388 389**起始版本:** 15 390 391**参数:** 392 393| 名称 | 描述 | 394| -------- | -------- | 395| windowId | 需要取消过滤鼠标事件的窗口ID。 | 396 397**返回:** 398 399返回窗口管理接口的通用状态码,具体可见[WindowManager_ErrorCode](#windowmanager_errorcode)。 400 401 402### OH_NativeWindowManager_UnregisterTouchEventFilter() 403 404``` 405WindowManager_ErrorCode OH_NativeWindowManager_UnregisterTouchEventFilter (int32_t windowId) 406``` 407 408**描述** 409 410取消注册窗口的触摸事件过滤函数。 411 412**起始版本:** 15 413 414**参数:** 415 416| 名称 | 描述 | 417| -------- | -------- | 418| windowId | 需要取消过滤触摸事件的窗口ID。 | 419 420**返回:** 421 422返回窗口管理接口的通用状态码,具体可见[WindowManager_ErrorCode](#windowmanager_errorcode)。 423 424 425### OH_WindowManager_GetWindowAvoidArea() 426 427``` 428int32_t OH_WindowManager_GetWindowAvoidArea (int32_t windowId, WindowManager_AvoidAreaType type, WindowManager_AvoidArea * avoidArea ) 429``` 430 431**描述** 432 433获取指定窗口的避让区域。 434 435**起始版本:** 15 436 437**参数:** 438 439| 名称 | 描述 | 440| -------- | -------- | 441| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。 | 442| type | 避让区域的类型。 | 443| avoidArea | 返回指向指定窗口的避让区域的指针,作为出参使用。 | 444 445**返回:** 446 447返回结果代码。 448 449返回OK,表示函数调用成功,返回指向对应窗口id的避让区域的指针。 450 451返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 452 453返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 454 455返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。 456 457 458### OH_WindowManager_GetWindowProperties() 459 460``` 461int32_t OH_WindowManager_GetWindowProperties (int32_t windowId, WindowManager_WindowProperties * windowProperties ) 462``` 463 464**描述** 465 466获取指定窗口属性。 467 468**起始版本:** 15 469 470**参数:** 471 472| 名称 | 描述 | 473| -------- | -------- | 474| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。 | 475| windowProperties | 返回指向指定窗口的属性的指针,作为出参使用。 | 476 477**返回:** 478 479返回结果代码。 480 481返回OK,表示函数调用成功,在windowProperties中返回窗口属性的指针。 482 483返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 484 485返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 486 487返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。 488 489 490### OH_WindowManager_IsWindowShown() 491 492``` 493WindowManager_ErrorCode OH_WindowManager_IsWindowShown (int32_t windowId, bool * isShow ) 494``` 495 496**描述** 497 498判断指定窗口是否显示。 499 500**起始版本:** 15 501 502**参数:** 503 504| 名称 | 描述 | 505| -------- | -------- | 506| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。 | 507| isShow | 返回指定窗口是否显示的结果。true表示指定窗口显示,false表示指定窗口不显示,作为出参使用。 | 508 509**返回:** 510 511返回结果代码。 512 513返回OK,表示函数调用成功。 514 515返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 516 517返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 518 519 520### OH_WindowManager_SetWindowBackgroundColor() 521 522``` 523int32_t OH_WindowManager_SetWindowBackgroundColor (int32_t windowId, const char * color ) 524``` 525 526**描述** 527 528设置指定窗口背景颜色。 529 530**起始版本:** 15 531 532**参数:** 533 534| 名称 | 描述 | 535| -------- | -------- | 536| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。 | 537| color | 设置窗口的背景色。该参数为字符串类型,格式为十六进制RGB或ARGB颜色。 | 538 539**返回:** 540 541返回结果代码。 542 543返回OK,表示函数调用成功。 544 545返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 546 547返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 548 549 550### OH_WindowManager_SetWindowBrightness() 551 552``` 553int32_t OH_WindowManager_SetWindowBrightness (int32_t windowId, float brightness ) 554``` 555 556**描述** 557 558设置指定窗口的屏幕亮度。 559 560**起始版本:** 15 561 562**参数:** 563 564| 名称 | 描述 | 565| -------- | -------- | 566| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。 | 567| brightness | 指定的屏幕亮度值。该参数为浮点数,取值范围为[0.0, 1.0]或-1.0。1.0表示最亮,-1.0表示默认亮度。 | 568 569**返回:** 570 571返回结果代码。 572 573返回OK,表示函数调用成功。 574 575返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 576 577返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 578 579返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。 580 581 582### OH_WindowManager_SetWindowFocusable() 583 584``` 585int32_t OH_WindowManager_SetWindowFocusable (int32_t windowId, bool isFocusable ) 586``` 587 588**描述** 589 590设置指定窗口是否可获焦。 591 592**起始版本:** 15 593 594**参数:** 595 596| 名称 | 描述 | 597| -------- | -------- | 598| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。 | 599| isFocusable | 窗口是否可获焦。true表示窗口可获焦,false表示窗口不可获焦。 | 600 601**返回:** 602 603返回结果代码。 604 605返回OK,表示函数调用成功。 606 607返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 608 609返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 610 611返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。 612 613 614### OH_WindowManager_SetWindowKeepScreenOn() 615 616``` 617int32_t OH_WindowManager_SetWindowKeepScreenOn (int32_t windowId, bool isKeepScreenOn ) 618``` 619 620**描述** 621 622设置指定窗口是否开启屏幕常亮。 623 624**起始版本:** 15 625 626**参数:** 627 628| 名称 | 描述 | 629| -------- | -------- | 630| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。 | 631| isKeepScreenOn | 指定窗口是否开启屏幕常亮。true表示开启屏幕常亮,false表示关闭屏幕常亮。 | 632 633**返回:** 634 635返回结果代码。 636 637返回OK,表示函数调用成功。 638 639返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 640 641返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 642 643返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。 644 645 646### OH_WindowManager_SetWindowNavigationBarEnabled() 647 648``` 649int32_t OH_WindowManager_SetWindowNavigationBarEnabled (int32_t windowId, bool enabled, bool enableAnimation ) 650``` 651 652**描述** 653 654设置指定窗口是否显示导航栏。 655 656**起始版本:** 15 657 658**参数:** 659 660| 名称 | 描述 | 661| -------- | -------- | 662| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。 | 663| enabled | 设置导航栏是否显示。true表示设置导航栏显示,false表示设置导航栏隐藏。 | 664| enableAnimation | 设置是否开启导航栏的显隐动画。true表示开启导航栏的显隐动画,false表示关闭导航栏的显隐动画。 | 665 666**返回:** 667 668返回结果代码。 669 670返回OK,表示函数调用成功。 671 672返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 673 674返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示不支持功能。 675 676返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 677 678返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。 679 680 681### OH_WindowManager_SetWindowPrivacyMode() 682 683``` 684int32_t OH_WindowManager_SetWindowPrivacyMode (int32_t windowId, bool isPrivacy ) 685``` 686 687**描述** 688 689设置指定窗口是否开启隐私模式。 690 691**起始版本:** 15 692 693**参数:** 694 695| 名称 | 描述 | 696| -------- | -------- | 697| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。 | 698| isPrivacy | 指定窗口是否开启隐私模式。true表示开启隐私模式,false表示关闭隐私模式。 | 699 700**需要权限:**ohos.permission.PRIVACY_WINDOW 。 701 702**返回:** 703 704返回结果代码。 705 706返回OK,表示函数调用成功。 707 708返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 709 710返回WINDOW_MANAGER_ERRORCODE_INVALID_PERMISSION,表示参数错误。 711 712返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 713 714返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。 715 716返回WINDOW_MANAGER_ERRORCODE_NO_PERMISSION,权限校验错误。 717 718 719### OH_WindowManager_SetWindowStatusBarColor() 720 721``` 722int32_t OH_WindowManager_SetWindowStatusBarColor (int32_t windowId, int32_t color ) 723``` 724 725**描述** 726 727设置指定窗口的状态栏内容颜色。 728 729**起始版本:** 15 730 731**参数:** 732 733| 名称 | 描述 | 734| -------- | -------- | 735| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。 | 736| color | 要设置的颜色值,格式为ARGB。 | 737 738**返回:** 739 740返回结果代码。 741 742返回OK,表示函数调用成功。 743 744返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 745 746返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示不支持功能。 747 748返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 749 750返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。 751 752 753### OH_WindowManager_SetWindowStatusBarEnabled() 754 755``` 756int32_t OH_WindowManager_SetWindowStatusBarEnabled (int32_t windowId, bool enabled, bool enableAnimation ) 757``` 758 759**描述** 760 761设置指定窗口是否显示状态栏。 762 763**起始版本:** 15 764 765**参数:** 766 767| 名称 | 描述 | 768| -------- | -------- | 769| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。 | 770| enabled | 设置状态栏是否显示。true表示设置状态栏显示,false表示设置状态栏隐藏。 | 771| enableAnimation | 设置是否开启状态栏的显隐动画。true表示开启状态栏的显隐动画,false表示关闭状态栏的显隐动画。 | 772 773**返回:** 774 775返回结果代码。 776 777返回OK,表示函数调用成功。 778 779返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 780 781返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示不支持功能。 782 783返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 784 785返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。 786 787 788### OH_WindowManager_SetWindowTouchable() 789 790``` 791int32_t OH_WindowManager_SetWindowTouchable (int32_t windowId, bool isTouchable ) 792``` 793 794**描述** 795 796设置指定窗口是否可触。 797 798**起始版本:** 15 799 800**参数:** 801 802| 名称 | 描述 | 803| -------- | -------- | 804| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。 | 805| isTouchable | 窗口是否可触。true表示窗口可触,false表示窗口不可触。 | 806 807**返回:** 808 809返回结果代码。 810 811返回OK,表示函数调用成功。 812 813返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 814 815返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 816 817返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。 818 819 820### OH_WindowManager_ShowWindow() 821 822``` 823WindowManager_ErrorCode OH_WindowManager_ShowWindow (int32_t windowId) 824``` 825 826**描述** 827 828显示指定窗口。 829 830**起始版本:** 15 831 832**参数:** 833 834| 名称 | 描述 | 835| -------- | -------- | 836| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。 | 837 838**返回:** 839 840返回结果代码。 841 842返回OK,表示函数调用成功。 843 844返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 845 846返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 847 848返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。 849 850 851### OH_WindowManager_Snapshot() 852 853``` 854int32_t OH_WindowManager_Snapshot (int32_t windowId, OH_PixelmapNative * pixelMap ) 855``` 856 857**描述** 858 859获取指定窗口截图。 860 861**起始版本:** 15 862 863**参数:** 864 865| 名称 | 描述 | 866| -------- | -------- | 867| windowId | 创建窗口时的窗口id。默认值为0。该参数为整数。窗口id非法或者窗口已经销毁,不能获取指定窗口截图,需要传入有效的窗口id才能成功获取指定窗口截图。请通过窗口对象调用getWindowProperties接口(ArkTS接口)获取有效的窗口id。 | 868| pixelMap | 返回指向指定窗口的截图的指针,作为出参使用。 | 869 870**返回:** 871 872返回结果代码。 873 874返回OK,表示函数调用成功,在返回pixelMap中的像素图的指针。 875 876返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。 877 878返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。 879