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