• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# start_options.h
2
3## 概述
4
5提供应用启动参数数据结构[AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md)以及设置和获取相关函数。
6
7**引用文件:** <AbilityKit/ability_runtime/start_options.h>
8
9**库:** libability_runtime.so
10
11**系统能力:** SystemCapability.Ability.AbilityRuntime.Core
12
13**起始版本:** 17
14
15**相关模块:** [AbilityRuntime](capi-abilityruntime.md)
16
17## 汇总
18
19### 结构体
20
21| 名称 | typedef关键字 | 描述 |
22| -- | -- | -- |
23| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) | AbilityRuntime_StartOptions | StartOptions数据结构。 |
24
25### 函数
26
27| 名称 | 描述 |
28| -- | -- |
29| [AbilityRuntime_StartOptions* OH_AbilityRuntime_CreateStartOptions(void)](#oh_abilityruntime_createstartoptions) | 创建AbilityRuntime_StartOptions对象。 |
30| [AbilityRuntime_ErrorCode OH_AbilityRuntime_DestroyStartOptions(AbilityRuntime_StartOptions **startOptions)](#oh_abilityruntime_destroystartoptions) | 销毁AbilityRuntime_StartOptions对象。 |
31| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsWindowMode(AbilityRuntime_StartOptions *startOptions,AbilityRuntime_WindowMode windowMode)](#oh_abilityruntime_setstartoptionswindowmode) | 设置启动Ability时的窗口模式。 |
32| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsWindowMode(AbilityRuntime_StartOptions *startOptions,AbilityRuntime_WindowMode &windowMode)](#oh_abilityruntime_getstartoptionswindowmode) | 获取启动Ability时的窗口模式。 |
33| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsDisplayId(AbilityRuntime_StartOptions *startOptions,int32_t displayId)](#oh_abilityruntime_setstartoptionsdisplayid) | 设置启动Ability时窗口所在的屏幕ID。 |
34| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsDisplayId(AbilityRuntime_StartOptions *startOptions,int32_t &displayId)](#oh_abilityruntime_getstartoptionsdisplayid) | 获取启动Ability时窗口所在的屏幕ID。 |
35| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsWithAnimation(AbilityRuntime_StartOptions *startOptions,bool withAnimation)](#oh_abilityruntime_setstartoptionswithanimation) | 设置启动Ability时是否具有动画效果。 |
36| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsWithAnimation(AbilityRuntime_StartOptions *startOptions,bool &withAnimation)](#oh_abilityruntime_getstartoptionswithanimation) | 获取启动Ability时是否具有动画效果。 |
37| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsWindowLeft(AbilityRuntime_StartOptions *startOptions,int32_t windowLeft)](#oh_abilityruntime_setstartoptionswindowleft) | 设置启动Ability时的窗口左侧位置,单位为px。 |
38| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsWindowLeft(AbilityRuntime_StartOptions *startOptions,int32_t &windowLeft)](#oh_abilityruntime_getstartoptionswindowleft) | 获取启动Ability时的窗口左侧位置,单位为px。 |
39| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsWindowTop(AbilityRuntime_StartOptions *startOptions,int32_t windowTop)](#oh_abilityruntime_setstartoptionswindowtop) | 设置启动Ability时的窗口顶部位置,单位为px。 |
40| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsWindowTop(AbilityRuntime_StartOptions *startOptions,int32_t &windowTop)](#oh_abilityruntime_getstartoptionswindowtop) | 获取启动Ability时的窗口顶部位置,单位为px。 |
41| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsWindowHeight(AbilityRuntime_StartOptions *startOptions,int32_t windowHeight)](#oh_abilityruntime_setstartoptionswindowheight) | 设置启动Ability时的窗口高度,单位为px。 |
42| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsWindowHeight(AbilityRuntime_StartOptions *startOptions,int32_t &windowHeight)](#oh_abilityruntime_getstartoptionswindowheight) | 获取启动Ability时的窗口高度,单位为px。 |
43| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsWindowWidth(AbilityRuntime_StartOptions *startOptions,int32_t windowWidth)](#oh_abilityruntime_setstartoptionswindowwidth) | 设置启动Ability时的窗口宽度,单位为px。 |
44| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsWindowWidth(AbilityRuntime_StartOptions *startOptions,int32_t &windowWidth)](#oh_abilityruntime_getstartoptionswindowwidth) | 获取启动Ability时的窗口宽度,单位为px。 |
45| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsStartVisibility(AbilityRuntime_StartOptions *startOptions,AbilityRuntime_StartVisibility startVisibility)](#oh_abilityruntime_setstartoptionsstartvisibility) | 设置启动Ability时窗口和dock栏图标的显示模式。 |
46| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsStartVisibility(AbilityRuntime_StartOptions *startOptions,AbilityRuntime_StartVisibility &startVisibility)](#oh_abilityruntime_getstartoptionsstartvisibility) | 获取启动Ability时窗口和dock栏图标的显示模式。 |
47| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsStartWindowIcon(AbilityRuntime_StartOptions *startOptions,OH_PixelmapNative *startWindowIcon)](#oh_abilityruntime_setstartoptionsstartwindowicon) | 设置启动Ability时的窗口启动图标。图片数据大小限制为600M。 |
48| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsStartWindowIcon(AbilityRuntime_StartOptions *startOptions,OH_PixelmapNative **startWindowIcon)](#oh_abilityruntime_getstartoptionsstartwindowicon) | 获取启动Ability时的窗口启动图标。 |
49| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsStartWindowBackgroundColor(AbilityRuntime_StartOptions *startOptions, const char *startWindowBackgroundColor)](#oh_abilityruntime_setstartoptionsstartwindowbackgroundcolor) | 设置启动Ability时的窗口背景颜色。如果未设置该字段,则默认采用module.json5配置文件中abilities标签的startWindowBackground字段的配置。 |
50| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsStartWindowBackgroundColor(AbilityRuntime_StartOptions *startOptions, char **startWindowBackgroundColor, size_t &size)](#oh_abilityruntime_getstartoptionsstartwindowbackgroundcolor) | 获取启动Ability时的窗口背景颜色。 |
51| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsSupportedWindowModes(AbilityRuntime_StartOptions *startOptions, AbilityRuntime_SupportedWindowMode *supportedWindowModes,size_t size)](#oh_abilityruntime_setstartoptionssupportedwindowmodes) | 设置启动Ability时的组件所支持的窗口模式。如果未配置该字段,则默认采用该UIAbility对应的module.json5配置文件中abilities标签的supportWindowMode字段取值。 |
52| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsSupportedWindowModes(AbilityRuntime_StartOptions *startOptions, AbilityRuntime_SupportedWindowMode **supportedWindowModes,size_t &size)](#oh_abilityruntime_getstartoptionssupportedwindowmodes) | 获取启动Ability时的组件所支持的窗口模式。 |
53| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsMinWindowWidth(AbilityRuntime_StartOptions *startOptions, int32_t minWindowWidth)](#oh_abilityruntime_setstartoptionsminwindowwidth) | 设置启动Ability时的窗口最小宽度,单位为vp。 |
54| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsMinWindowWidth(AbilityRuntime_StartOptions *startOptions, int32_t &minWindowWidth)](#oh_abilityruntime_getstartoptionsminwindowwidth) | 获取启动Ability时的窗口最小宽度,单位为vp。 |
55| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsMaxWindowWidth(AbilityRuntime_StartOptions *startOptions, int32_t maxWindowWidth)](#oh_abilityruntime_setstartoptionsmaxwindowwidth) | 设置启动Ability时的窗口最大宽度,单位为vp。 |
56| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsMaxWindowWidth(AbilityRuntime_StartOptions *startOptions, int32_t &maxWindowWidth)](#oh_abilityruntime_getstartoptionsmaxwindowwidth) | 获取启动Ability时的窗口最大宽度,单位为vp。 |
57| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsMinWindowHeight(AbilityRuntime_StartOptions *startOptions, int32_t minWindowHeight)](#oh_abilityruntime_setstartoptionsminwindowheight) | 设置启动Ability时的窗口最小高度,单位为vp。 |
58| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsMinWindowHeight(AbilityRuntime_StartOptions *startOptions, int32_t &minWindowHeight)](#oh_abilityruntime_getstartoptionsminwindowheight) | 获取启动Ability时的窗口最小高度,单位为vp。 |
59| [AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsMaxWindowHeight(AbilityRuntime_StartOptions *startOptions, int32_t maxWindowHeight)](#oh_abilityruntime_setstartoptionsmaxwindowheight) | 设置启动Ability时的窗口最大高度,单位为vp。 |
60| [AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsMaxWindowHeight(AbilityRuntime_StartOptions *startOptions, int32_t &maxWindowHeight)](#oh_abilityruntime_getstartoptionsmaxwindowheight) | 获取启动Ability时的窗口最大高度,单位为vp。 |
61
62## 函数说明
63
64### OH_AbilityRuntime_CreateStartOptions()
65
66```
67AbilityRuntime_StartOptions* OH_AbilityRuntime_CreateStartOptions(void)
68```
69
70**描述**
71
72创建[AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md)对象。
73
74**起始版本:** 17
75
76**返回:**
77
78| 类型 | 说明 |
79| -- | -- |
80| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md)* | 返回指针类型AbilityRuntime_StartOptions对象。 |
81
82**示例代码:**
83
84```cpp
85#include <AbilityKit/ability_runtime/start_options.h>
86
87void createStartOptionsTest()
88{
89    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
90    if (options == nullptr) {
91        // 记录错误日志以及其他业务处理
92        return;
93    }
94
95    // 销毁options,防止内存泄漏
96    OH_AbilityRuntime_DestroyStartOptions(&options);
97}
98```
99
100### OH_AbilityRuntime_DestroyStartOptions()
101
102```
103AbilityRuntime_ErrorCode OH_AbilityRuntime_DestroyStartOptions(AbilityRuntime_StartOptions **startOptions)
104```
105
106**描述**
107
108销毁[AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md)对象。
109
110**起始版本:** 17
111
112**参数:**
113
114| 参数项 | 描述 |
115| -- | -- |
116| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) **startOptions | 需要销毁的AbilityRuntime_StartOptions对象。 |
117
118**返回:**
119
120| 类型 | 说明 |
121| -- | -- |
122| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
123
124**示例代码:**
125
126```cpp
127#include <AbilityKit/ability_runtime/start_options.h>
128
129void destroyStartOptionsTest()
130{
131    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
132    if (options == nullptr) {
133        // 记录错误日志以及其他业务处理
134        return;
135    }
136
137    // 销毁options,防止内存泄漏
138    OH_AbilityRuntime_DestroyStartOptions(&options);
139}
140```
141
142### OH_AbilityRuntime_SetStartOptionsWindowMode()
143
144```
145AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsWindowMode(AbilityRuntime_StartOptions *startOptions,AbilityRuntime_WindowMode windowMode)
146```
147
148**描述**
149
150设置启动Ability时的窗口模式。
151
152**起始版本:** 17
153
154
155**参数:**
156
157| 参数项 | 描述 |
158| -- | -- |
159| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
160| [AbilityRuntime_WindowMode](capi-context-constant-h.md#abilityruntime_windowmode) windowMode | 启动Ability时的窗口模式。取值范围参见AbilityRuntime_WindowMode。 |
161
162**返回:**
163
164| 类型 | 说明 |
165| -- | -- |
166| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空或者WindowMode无效。 |
167
168**示例代码:**
169
170```cpp
171#include <AbilityKit/ability_runtime/start_options.h>
172
173void demo()
174{
175    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
176    if (options == nullptr) {
177        // 记录错误日志以及其他业务处理
178        return;
179    }
180
181    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsWindowMode(options,
182        ABILITY_RUNTIME_WINDOW_MODE_FULL_SCREEN);
183    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
184        // 记录错误日志以及其他业务处理
185    }
186    // 销毁options,防止内存泄漏
187    OH_AbilityRuntime_DestroyStartOptions(&options);
188}
189```
190
191### OH_AbilityRuntime_GetStartOptionsWindowMode()
192
193```
194AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsWindowMode(AbilityRuntime_StartOptions *startOptions,AbilityRuntime_WindowMode &windowMode)
195```
196
197**描述**
198
199获取启动Ability时的窗口模式。
200
201**起始版本:** 17
202
203**参数:**
204
205| 参数项 | 描述 |
206| -- | -- |
207| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
208| [AbilityRuntime_WindowMode](capi-context-constant-h.md#abilityruntime_windowmode) windowMode | 启动Ability时的窗口模式。取值范围参见AbilityRuntime_WindowMode。 |
209
210**返回:**
211
212| 类型 | 说明 |
213| -- | -- |
214| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
215
216**示例代码:**
217
218```cpp
219#include <AbilityKit/ability_runtime/start_options.h>
220
221void demo()
222{
223    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
224    if (options == nullptr) {
225        // 记录错误日志以及其他业务处理
226        return;
227    }
228
229    AbilityRuntime_WindowMode windowMode = ABILITY_RUNTIME_WINDOW_MODE_UNDEFINED;
230    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsWindowMode(options, windowMode);
231    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
232        // 记录错误日志以及其他业务处理
233    }
234    // 销毁options,防止内存泄漏
235    OH_AbilityRuntime_DestroyStartOptions(&options);
236}
237```
238
239### OH_AbilityRuntime_SetStartOptionsDisplayId()
240
241```
242AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsDisplayId(AbilityRuntime_StartOptions *startOptions,int32_t displayId)
243```
244
245**描述**
246
247设置启动Ability时窗口所在的屏幕ID。
248
249**起始版本:** 17
250
251**参数:**
252
253| 参数项 | 描述 |
254| -- | -- |
255| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
256| int32_t displayId | 启动Ability时窗口所在的屏幕ID。 |
257
258**返回:**
259
260| 类型 | 说明 |
261| -- | -- |
262| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
263
264**示例代码:**
265
266```cpp
267#include <AbilityKit/ability_runtime/start_options.h>
268
269void demo()
270{
271    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
272    if (options == nullptr) {
273        // 记录错误日志以及其他业务处理
274        return;
275    }
276
277    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsDisplayId(options, 1);
278    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
279        // 记录错误日志以及其他业务处理
280    }
281    // 销毁options,防止内存泄漏
282    OH_AbilityRuntime_DestroyStartOptions(&options);
283}
284```
285
286### OH_AbilityRuntime_GetStartOptionsDisplayId()
287
288```
289AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsDisplayId(AbilityRuntime_StartOptions *startOptions,int32_t &displayId)
290```
291
292**描述**
293
294获取启动Ability时窗口所在的屏幕ID。
295
296**起始版本:** 17
297
298**参数:**
299
300| 参数项 | 描述 |
301| -- | -- |
302| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
303| int32_t &displayId | 启动Ability时窗口所在的屏幕ID。 |
304
305**返回:**
306
307| 类型 | 说明 |
308| -- | -- |
309| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
310
311**示例代码:**
312
313```cpp
314#include <AbilityKit/ability_runtime/start_options.h>
315
316void demo()
317{
318    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
319    if (options == nullptr) {
320        // 记录错误日志以及其他业务处理
321        return;
322    }
323
324    int32_t displayId = 0;
325    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsDisplayId(options, displayId);
326    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
327        // 记录错误日志以及其他业务处理
328    }
329    // 销毁options,防止内存泄漏
330    OH_AbilityRuntime_DestroyStartOptions(&options);
331}
332```
333
334### OH_AbilityRuntime_SetStartOptionsWithAnimation()
335
336```
337AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsWithAnimation(AbilityRuntime_StartOptions *startOptions,bool withAnimation)
338```
339
340**描述**
341
342设置启动Ability时是否具有动画效果。
343
344**起始版本:** 17
345
346**参数:**
347
348| 参数项 | 描述 |
349| -- | -- |
350| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
351| bool withAnimation | 启动Ability时是否具有动画效果。<br>true表示启动Ability时具有动画效果;false表示启动Ability时不具有动画效果。 |
352
353**返回:**
354
355| 类型 | 说明 |
356| -- | -- |
357| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
358
359**示例代码:**
360
361```cpp
362#include <AbilityKit/ability_runtime/start_options.h>
363
364void demo()
365{
366    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
367    if (options == nullptr) {
368        // 记录错误日志以及其他业务处理
369        return;
370    }
371
372    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsWithAnimation(options, true);
373    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
374        // 记录错误日志以及其他业务处理
375    }
376    // 销毁options,防止内存泄漏
377    OH_AbilityRuntime_DestroyStartOptions(&options);
378}
379```
380
381### OH_AbilityRuntime_GetStartOptionsWithAnimation()
382
383```
384AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsWithAnimation(AbilityRuntime_StartOptions *startOptions,bool &withAnimation)
385```
386
387**描述**
388
389获取启动Ability时是否具有动画效果。
390
391**起始版本:** 17
392
393**参数:**
394
395| 参数项 | 描述 |
396| -- | -- |
397| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
398| bool &withAnimation | 启动Ability时是否具有动画效果。<br>true表示启动Ability时具有动画效果;false表示启动Ability时不具有动画效果。 |
399
400**返回:**
401
402| 类型 | 说明 |
403| -- | -- |
404| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
405
406**示例代码:**
407
408```cpp
409#include <AbilityKit/ability_runtime/start_options.h>
410
411void demo()
412{
413    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
414    if (options == nullptr) {
415        // 记录错误日志以及其他业务处理
416        return;
417    }
418
419    bool withAnimation = false;
420    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsWithAnimation(options, withAnimation);
421    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
422        // 记录错误日志以及其他业务处理
423    }
424    // 销毁options,防止内存泄漏
425    OH_AbilityRuntime_DestroyStartOptions(&options);
426}
427```
428
429### OH_AbilityRuntime_SetStartOptionsWindowLeft()
430
431```
432AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsWindowLeft(AbilityRuntime_StartOptions *startOptions,int32_t windowLeft)
433```
434
435**描述**
436
437设置启动Ability时的窗口左侧位置,单位为px。
438
439**起始版本:** 17
440
441**参数:**
442
443| 参数项 | 描述 |
444| -- | -- |
445| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
446| int32_t windowLeft | 启动Ability时的窗口左侧位置,单位为px。 |
447
448**返回:**
449
450| 类型 | 说明 |
451| -- | -- |
452| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
453
454**示例代码:**
455
456```cpp
457#include <AbilityKit/ability_runtime/start_options.h>
458
459void demo()
460{
461    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
462    if (options == nullptr) {
463        // 记录错误日志以及其他业务处理
464        return;
465    }
466
467    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsWindowLeft(options, 200);
468    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
469        // 记录错误日志以及其他业务处理
470    }
471    // 销毁options,防止内存泄漏
472    OH_AbilityRuntime_DestroyStartOptions(&options);
473}
474```
475
476### OH_AbilityRuntime_GetStartOptionsWindowLeft()
477
478```
479AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsWindowLeft(AbilityRuntime_StartOptions *startOptions,int32_t &windowLeft)
480```
481
482**描述**
483
484获取启动Ability时的窗口左侧位置,单位为px。
485
486**起始版本:** 17
487
488**参数:**
489
490| 参数项 | 描述 |
491| -- | -- |
492| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
493| int32_t &windowLeft | 启动Ability时的窗口左侧位置,单位为px。 |
494
495**返回:**
496
497| 类型 | 说明 |
498| -- | -- |
499| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
500
501**示例代码:**
502
503```cpp
504#include <AbilityKit/ability_runtime/start_options.h>
505
506void demo()
507{
508    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
509    if (options == nullptr) {
510        // 记录错误日志以及其他业务处理
511        return;
512    }
513
514    int32_t windowLeft = 0;
515    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsWindowLeft(options, windowLeft);
516    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
517        // 记录错误日志以及其他业务处理
518    }
519    // 销毁options,防止内存泄漏
520    OH_AbilityRuntime_DestroyStartOptions(&options);
521}
522```
523
524### OH_AbilityRuntime_SetStartOptionsWindowTop()
525
526```
527AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsWindowTop(AbilityRuntime_StartOptions *startOptions,int32_t windowTop)
528```
529
530**描述**
531
532设置启动Ability时的窗口顶部位置,单位为px。
533
534**起始版本:** 17
535
536**参数:**
537
538| 参数项 | 描述 |
539| -- | -- |
540| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
541| int32_t windowTop | 启动Ability时的窗口顶部位置,单位为px。 |
542
543**返回:**
544
545| 类型 | 说明 |
546| -- | -- |
547| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
548
549**示例代码:**
550
551```cpp
552#include <AbilityKit/ability_runtime/start_options.h>
553
554void demo()
555{
556    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
557    if (options == nullptr) {
558        // 记录错误日志以及其他业务处理
559        return;
560    }
561
562    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsWindowTop(options, 500);
563    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
564        // 记录错误日志以及其他业务处理
565    }
566    // 销毁options,防止内存泄漏
567    OH_AbilityRuntime_DestroyStartOptions(&options);
568}
569```
570
571### OH_AbilityRuntime_GetStartOptionsWindowTop()
572
573```
574AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsWindowTop(AbilityRuntime_StartOptions *startOptions,int32_t &windowTop)
575```
576
577**描述**
578
579获取启动Ability时的窗口顶部位置,单位为px。
580
581**起始版本:** 17
582
583**参数:**
584
585| 参数项 | 描述 |
586| -- | -- |
587| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
588| int32_t &windowTop | 启动Ability时的窗口顶部位置,单位为px。 |
589
590**返回:**
591
592| 类型 | 说明 |
593| -- | -- |
594| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
595
596**示例代码:**
597
598```cpp
599#include <AbilityKit/ability_runtime/start_options.h>
600
601void demo()
602{
603    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
604    if (options == nullptr) {
605        // 记录错误日志以及其他业务处理
606        return;
607    }
608
609    int32_t windowTop = 0;
610    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsWindowTop(options, windowTop);
611    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
612        // 记录错误日志以及其他业务处理
613    }
614    // 销毁options,防止内存泄漏
615    OH_AbilityRuntime_DestroyStartOptions(&options);
616}
617```
618
619### OH_AbilityRuntime_SetStartOptionsWindowHeight()
620
621```
622AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsWindowHeight(AbilityRuntime_StartOptions *startOptions,int32_t windowHeight)
623```
624
625**描述**
626
627设置启动Ability时的窗口高度,单位为px。
628
629**起始版本:** 17
630
631**参数:**
632
633| 参数项 | 描述 |
634| -- | -- |
635| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
636| int32_t windowHeight | 启动Ability时的窗口高度,单位为px。 |
637
638**返回:**
639
640| 类型 | 说明 |
641| -- | -- |
642| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
643
644**示例代码:**
645
646```cpp
647#include <AbilityKit/ability_runtime/start_options.h>
648
649void demo()
650{
651    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
652    if (options == nullptr) {
653        // 记录错误日志以及其他业务处理
654        return;
655    }
656
657    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsWindowHeight(options, 500);
658    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
659        // 记录错误日志以及其他业务处理
660    }
661    // 销毁options,防止内存泄漏
662    OH_AbilityRuntime_DestroyStartOptions(&options);
663}
664```
665
666### OH_AbilityRuntime_GetStartOptionsWindowHeight()
667
668```
669AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsWindowHeight(AbilityRuntime_StartOptions *startOptions,int32_t &windowHeight)
670```
671
672**描述**
673
674获取启动Ability时的窗口高度,单位为px。
675
676**起始版本:** 17
677
678**参数:**
679
680| 参数项 | 描述 |
681| -- | -- |
682| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
683| int32_t &windowHeight | 启动Ability时的窗口高度,单位为px。 |
684
685**返回:**
686
687| 类型 | 说明 |
688| -- | -- |
689| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
690
691**示例代码:**
692
693```cpp
694#include <AbilityKit/ability_runtime/start_options.h>
695
696void demo()
697{
698    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
699    if (options == nullptr) {
700        // 记录错误日志以及其他业务处理
701        return;
702    }
703
704    int32_t windowHeight = 0;
705    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsWindowHeight(options, windowHeight);
706    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
707        // 记录错误日志以及其他业务处理
708    }
709    // 销毁options,防止内存泄漏
710    OH_AbilityRuntime_DestroyStartOptions(&options);
711}
712```
713
714### OH_AbilityRuntime_SetStartOptionsWindowWidth()
715
716```
717AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsWindowWidth(AbilityRuntime_StartOptions *startOptions,int32_t windowWidth)
718```
719
720**描述**
721
722设置启动Ability时的窗口宽度,单位为px。
723
724**起始版本:** 17
725
726**参数:**
727
728| 参数项 | 描述 |
729| -- | -- |
730| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
731| int32_t windowWidth | 启动Ability时的窗口宽度,单位为px。 |
732
733**返回:**
734
735| 类型 | 说明 |
736| -- | -- |
737| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
738
739**示例代码:**
740
741```cpp
742#include <AbilityKit/ability_runtime/start_options.h>
743
744void demo()
745{
746    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
747    if (options == nullptr) {
748        // 记录错误日志以及其他业务处理
749        return;
750    }
751
752    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsWindowWidth(options, 500);
753    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
754        // 记录错误日志以及其他业务处理
755    }
756    // 销毁options,防止内存泄漏
757    OH_AbilityRuntime_DestroyStartOptions(&options);
758}
759```
760
761### OH_AbilityRuntime_GetStartOptionsWindowWidth()
762
763```
764AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsWindowWidth(AbilityRuntime_StartOptions *startOptions,int32_t &windowWidth)
765```
766
767**描述**
768
769获取启动Ability时的窗口宽度,单位为px。
770
771**起始版本:** 17
772
773**参数:**
774
775| 参数项 | 描述 |
776| -- | -- |
777| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
778| int32_t &windowWidth | 启动Ability时的窗口宽度,单位为px。 |
779
780**返回:**
781
782| 类型 | 说明 |
783| -- | -- |
784| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
785
786**示例代码:**
787
788```cpp
789#include <AbilityKit/ability_runtime/start_options.h>
790
791void demo()
792{
793    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
794    if (options == nullptr) {
795        // 记录错误日志以及其他业务处理
796        return;
797    }
798
799    int32_t windowWidth = 0;
800    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsWindowWidth(options, windowWidth);
801    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
802        // 记录错误日志以及其他业务处理
803    }
804    // 销毁options,防止内存泄漏
805    OH_AbilityRuntime_DestroyStartOptions(&options);
806}
807```
808
809### OH_AbilityRuntime_SetStartOptionsStartVisibility()
810
811```
812AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsStartVisibility(AbilityRuntime_StartOptions *startOptions,AbilityRuntime_StartVisibility startVisibility)
813```
814
815**描述**
816
817设置启动Ability时窗口和dock栏图标的显示模式。
818
819**起始版本:** 17
820
821**参数:**
822
823| 参数项 | 描述 |
824| -- | -- |
825| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | StartOptions结构体。 |
826| [AbilityRuntime_StartVisibility](capi-context-constant-h.md#abilityruntime_startvisibility) startVisibility | 需要设置的显示模式。取值范围参见AbilityRuntime_StartVisibility。 |
827
828**返回:**
829
830| 类型 | 说明 |
831| -- | -- |
832| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示设置成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空,或startVisibility取值不在枚举类AbilityRuntime_StartVisibility中。 |
833
834**示例代码:**
835
836```cpp
837#include <AbilityKit/ability_runtime/start_options.h>
838
839void demo()
840{
841    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
842    if (options == nullptr) {
843        // 记录错误日志以及其他业务处理
844        return;
845    }
846
847    AbilityRuntime_StartVisibility visibility = AbilityRuntime_StartVisibility::ABILITY_RUNTIME_SHOW_UPON_START;
848    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsStartVisibility(options, visibility);
849    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
850        // 记录错误日志以及其他业务处理
851    }
852    // 销毁options,防止内存泄漏
853    OH_AbilityRuntime_DestroyStartOptions(&options);
854}
855```
856
857### OH_AbilityRuntime_GetStartOptionsStartVisibility()
858
859```
860AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsStartVisibility(AbilityRuntime_StartOptions *startOptions,AbilityRuntime_StartVisibility &startVisibility)
861```
862
863**描述**
864
865获取启动Ability时窗口和dock栏图标的显示模式。
866
867**起始版本:** 17
868
869**参数:**
870
871| 参数项 | 描述 |
872| -- | -- |
873| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | StartOptions结构体。 |
874| [bilityRuntime_StartVisibility](capi-context-constant-h.md#abilityruntime_startvisibility) &startVisibility | 获取到的显示模式。取值范围参见AbilityRuntime_StartVisibility。 |
875
876**返回:**
877
878| 类型 | 说明 |
879| -- | -- |
880| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示获取成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空,或startVisibility未被设置。 |
881
882**示例代码:**
883
884```cpp
885#include <AbilityKit/ability_runtime/start_options.h>
886
887void demo()
888{
889    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
890    if (options == nullptr) {
891        // 记录错误日志以及其他业务处理
892        return;
893    }
894
895    AbilityRuntime_StartVisibility visibility;
896    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsStartVisibility(options, visibility);
897    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
898        // 记录错误日志以及其他业务处理
899    }
900    // 销毁options,防止内存泄漏
901    OH_AbilityRuntime_DestroyStartOptions(&options);
902}
903```
904
905### OH_AbilityRuntime_SetStartOptionsStartWindowIcon()
906
907```
908AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsStartWindowIcon(AbilityRuntime_StartOptions *startOptions,OH_PixelmapNative *startWindowIcon)
909```
910
911**描述**
912
913设置启动Ability时的窗口启动图标。图片数据大小限制为600M。
914
915**起始版本:** 17
916
917**参数:**
918
919| 参数项 | 描述 |
920| -- | -- |
921| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
922| OH_PixelmapNative *startWindowIcon | 启动Ability时的窗口启动图标。图片数据大小限制为600M。 |
923
924**返回:**
925
926| 类型 | 说明 |
927| -- | -- |
928| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空,或者OH_PixelmapNative没有置为空指针。 |
929
930**示例代码:**
931
932```cpp
933#include <AbilityKit/ability_runtime/start_options.h>
934
935void demo()
936{
937    uint8_t data[96];
938    size_t dataSize = 96;
939    for (int i = 0; i < dataSize; i++) {
940        data[i] = i + 1;
941    }
942
943    //创建参数结构体实例,并设置参数
944    OH_Pixelmap_InitializationOptions *createOpts = nullptr;
945    OH_PixelmapInitializationOptions_Create(&createOpts);
946    OH_PixelmapInitializationOptions_SetWidth(createOpts, 6);
947    OH_PixelmapInitializationOptions_SetHeight(createOpts, 4);
948    OH_PixelmapInitializationOptions_SetPixelFormat(createOpts, PIXEL_FORMAT_RGBA_8888);
949    OH_PixelmapInitializationOptions_SetAlphaType(createOpts, PIXELMAP_ALPHA_TYPE_UNKNOWN);
950
951    //创建Pixelmap实例
952    OH_PixelmapNative *startWindowIcon = nullptr;
953    Image_ErrorCode errCode = OH_PixelmapNative_CreatePixelmap(data, dataSize, createOpts, &startWindowIcon);
954    if (errCode != IMAGE_SUCCESS) {
955        // 记录错误日志以及其他业务处理
956
957        // 销毁createOpts,防止内存泄漏
958        OH_PixelmapInitializationOptions_Release(createOpts);
959        return;
960    }
961
962    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
963    if (options == nullptr) {
964        // 记录错误日志以及其他业务处理
965
966        // 销毁createOpts,防止内存泄漏
967        OH_PixelmapInitializationOptions_Release(createOpts);
968
969        // 销毁startWindowIcon,防止内存泄漏
970        OH_PixelmapNative_Release(startWindowIcon);
971        return;
972    }
973
974    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsStartWindowIcon(options, startWindowIcon);
975    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
976        // 记录错误日志以及其他业务处理
977    }
978    // 销毁createOpts,防止内存泄漏
979    OH_PixelmapInitializationOptions_Release(createOpts);
980
981    // 销毁startWindowIcon,防止内存泄漏
982    OH_PixelmapNative_Release(startWindowIcon);
983
984    // 销毁options,防止内存泄漏
985    OH_AbilityRuntime_DestroyStartOptions(&options);
986}
987```
988
989### OH_AbilityRuntime_GetStartOptionsStartWindowIcon()
990
991```
992AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsStartWindowIcon(AbilityRuntime_StartOptions *startOptions,OH_PixelmapNative **startWindowIcon)
993```
994
995**描述**
996
997获取启动Ability时的窗口启动图标。
998
999**起始版本:** 17
1000
1001**参数:**
1002
1003| 参数项 | 描述 |
1004| -- | -- |
1005| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
1006| OH_PixelmapNative **startWindowIcon | 启动Ability时的窗口启动图标。 |
1007
1008**返回:**
1009
1010| 类型 | 说明 |
1011| -- | -- |
1012| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions或者StartWindowBackgroundColor为空。 |
1013
1014**示例代码:**
1015
1016```cpp
1017#include <AbilityKit/ability_runtime/start_options.h>
1018
1019void demo()
1020{
1021    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
1022    if (options == nullptr) {
1023        // 记录错误日志以及其他业务处理
1024        return;
1025    }
1026
1027    OH_PixelmapNative *startWindowIcon = nullptr;
1028    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsStartWindowIcon(options, &startWindowIcon);
1029    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
1030        // 记录错误日志以及其他业务处理
1031    }
1032
1033    // 销毁startWindowIcon,防止内存泄漏
1034    OH_PixelmapNative_Release(startWindowIcon);
1035
1036    // 销毁options,防止内存泄漏
1037    OH_AbilityRuntime_DestroyStartOptions(&options);
1038}
1039```
1040
1041### OH_AbilityRuntime_SetStartOptionsStartWindowBackgroundColor()
1042
1043```
1044AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsStartWindowBackgroundColor(AbilityRuntime_StartOptions *startOptions, const char *startWindowBackgroundColor)
1045```
1046
1047**描述**
1048
1049设置启动Ability时的窗口背景颜色。启动UIAbility时,启动页所显示的背景颜色如果未设置该字段,则默认采用[module.json5配置文件](../../quick-start/module-configuration-file.md)中[abilities标签](../../quick-start/module-configuration-file.md#abilities标签)的startWindowBackground字段的配置。
1050
1051**起始版本:** 17
1052
1053**参数:**
1054
1055| 参数项 | 描述 |
1056| -- | -- |
1057| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
1058| const char *startWindowBackgroundColor | 启动Ability时的窗口背景颜色。固定为ARGB格式, 如:`#E5FFFFFF`。 |
1059
1060**返回:**
1061
1062| 类型 | 说明 |
1063| -- | -- |
1064| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空,或者StartWindowBackgroundColor没有置为空指针。 |
1065
1066**示例代码:**
1067
1068```cpp
1069#include <AbilityKit/ability_runtime/start_options.h>
1070
1071void demo()
1072{
1073    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
1074    if (options == nullptr) {
1075        // 记录错误日志以及其他业务处理
1076        return;
1077    }
1078
1079    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsStartWindowBackgroundColor(options, "#00000000");
1080    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
1081        // 记录错误日志以及其他业务处理
1082    }
1083
1084    // 销毁options,防止内存泄漏
1085    OH_AbilityRuntime_DestroyStartOptions(&options);
1086}
1087```
1088
1089### OH_AbilityRuntime_GetStartOptionsStartWindowBackgroundColor()
1090
1091```
1092AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsStartWindowBackgroundColor(AbilityRuntime_StartOptions *startOptions, char **startWindowBackgroundColor, size_t &size)
1093```
1094
1095**描述**
1096
1097获取启动Ability时的窗口背景颜色。
1098
1099**起始版本:** 17
1100
1101
1102**参数:**
1103
1104| 参数项 | 描述 |
1105| -- | -- |
1106| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
1107| char **startWindowBackgroundColor | 启动Ability时的窗口背景颜色。固定为ARGB格式, 如:`#E5FFFFFF`。 |
1108| size_t &size | 获取到的窗口背景颜色的大小。 |
1109
1110**返回:**
1111
1112| 类型 | 说明 |
1113| -- | -- |
1114| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions或者SupportedWindowModes为空,或者Size为0。<br>在返回ABILITY_RUNTIME_ERROR_CODE_INTERNAL时,表示开发者无法恢复的内部错误,比如内部调用malloc错误,或者字符串拷贝函数出错。 |
1115
1116**示例代码:**
1117
1118```cpp
1119#include <cstdlib>
1120
1121#include <AbilityKit/ability_runtime/start_options.h>
1122
1123void demo()
1124{
1125    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
1126    if (options == nullptr) {
1127        // 记录错误日志以及其他业务处理
1128        return;
1129    }
1130
1131    char *startWindowBackgroundColor = nullptr;
1132    size_t size = 0;
1133    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsStartWindowBackgroundColor(options,
1134        &startWindowBackgroundColor, size);
1135    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
1136        // 记录错误日志以及其他业务处理
1137    }
1138
1139    if (startWindowBackgroundColor != nullptr) {
1140        // 销毁startWindowBackgroundColor,防止内存泄漏
1141        free(startWindowBackgroundColor);
1142        startWindowBackgroundColor = nullptr;
1143    }
1144
1145    // 销毁options,防止内存泄漏
1146    OH_AbilityRuntime_DestroyStartOptions(&options);
1147}
1148```
1149
1150### OH_AbilityRuntime_SetStartOptionsSupportedWindowModes()
1151
1152```
1153AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsSupportedWindowModes(AbilityRuntime_StartOptions *startOptions, AbilityRuntime_SupportedWindowMode *supportedWindowModes,size_t size)
1154```
1155
1156**描述**
1157
1158设置启动Ability时的组件所支持的窗口模式。
1159
1160
1161**起始版本:** 17
1162
1163**参数:**
1164
1165| 参数项 | 描述 |
1166| -- | -- |
1167| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
1168| [AbilityRuntime_SupportedWindowMode](capi-context-constant-h.md#abilityruntime_supportedwindowmode) *supportedWindowModes | 启动Ability时的组件所支持的窗口模式。取值范围参见AbilityRuntime_SupportedWindowMode。 |
1169| size_t size | 组件所支持的窗口模式大小。 |
1170
1171**返回:**
1172
1173| 类型 | 说明 |
1174| -- | -- |
1175| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions或者SupportedWindowModes为空,或者Size为0。 |
1176
1177**示例代码:**
1178
1179```cpp
1180#include <AbilityKit/ability_runtime/start_options.h>
1181
1182void demo()
1183{
1184    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
1185    if (options == nullptr) {
1186        // 记录错误日志以及其他业务处理
1187        return;
1188    }
1189
1190    size_t supportedWindowModesSize = 3;
1191    AbilityRuntime_SupportedWindowMode supportedWindowModes[3] = {
1192        ABILITY_RUNTIME_SUPPORTED_WINDOW_MODE_FULL_SCREEN,
1193        ABILITY_RUNTIME_SUPPORTED_WINDOW_MODE_SPLIT,
1194        ABILITY_RUNTIME_SUPPORTED_WINDOW_MODE_FLOATING,
1195    };
1196    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsSupportedWindowModes(options,
1197        supportedWindowModes, supportedWindowModesSize);
1198    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
1199        // 记录错误日志以及其他业务处理
1200    }
1201
1202    // 销毁options,防止内存泄漏
1203    OH_AbilityRuntime_DestroyStartOptions(&options);
1204}
1205```
1206
1207### OH_AbilityRuntime_GetStartOptionsSupportedWindowModes()
1208
1209```
1210AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsSupportedWindowModes(AbilityRuntime_StartOptions *startOptions, AbilityRuntime_SupportedWindowMode **supportedWindowModes,size_t &size)
1211```
1212
1213**描述**
1214
1215获取启动Ability时的组件所支持的窗口模式。
1216
1217**起始版本:** 17
1218
1219**参数:**
1220
1221| 参数项 | 描述 |
1222| -- | -- |
1223| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
1224| [AbilityRuntime_SupportedWindowMode](capi-context-constant-h.md#abilityruntime_supportedwindowmode) **supportedWindowModes | 启动Ability时的组件所支持的窗口模式。取值范围参见AbilityRuntime_SupportedWindowMode。 |
1225| size | 组件所支持的窗口模式大小。 |
1226
1227**返回:**
1228
1229| 类型 | 说明 |
1230| -- | -- |
1231| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空,或者SupportWindowMode没有置为空指针。<br>在返回ABILITY_RUNTIME_ERROR_CODE_INTERNAL时,表示开发者无法恢复的内部错误,比如内部调用malloc错误。 |
1232
1233**示例代码:**
1234
1235```cpp
1236#include <cstdlib>
1237
1238#include <AbilityKit/ability_runtime/start_options.h>
1239
1240void demo()
1241{
1242    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
1243    if (options == nullptr) {
1244        // 记录错误日志以及其他业务处理
1245        return;
1246    }
1247
1248    AbilityRuntime_SupportedWindowMode *supportedWindowModes = nullptr;
1249    size_t size = 0;
1250    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsSupportedWindowModes(options,
1251        &supportedWindowModes, size);
1252    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
1253        // 记录错误日志以及其他业务处理
1254    }
1255
1256    if (supportedWindowModes != nullptr) {
1257        // 销毁supportedWindowModes,防止内存泄漏
1258        free(supportedWindowModes);
1259    }
1260
1261    // 销毁options,防止内存泄漏
1262    OH_AbilityRuntime_DestroyStartOptions(&options);
1263}
1264```
1265
1266### OH_AbilityRuntime_SetStartOptionsMinWindowWidth()
1267
1268```
1269AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsMinWindowWidth(AbilityRuntime_StartOptions *startOptions, int32_t minWindowWidth)
1270```
1271
1272**描述**
1273
1274设置启动Ability时的窗口最小宽度,单位为vp。
1275
1276**起始版本:** 17
1277
1278
1279**参数:**
1280
1281| 参数项 | 描述 |
1282| -- | -- |
1283| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
1284| int32_t minWindowWidth | 启动Ability时的窗口最小宽度,单位为vp。 |
1285
1286**返回:**
1287
1288| 类型 | 说明 |
1289| -- | -- |
1290| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
1291
1292**示例代码:**
1293
1294```cpp
1295#include <AbilityKit/ability_runtime/start_options.h>
1296
1297void demo()
1298{
1299    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
1300    if (options == nullptr) {
1301        // 记录错误日志以及其他业务处理
1302        return;
1303    }
1304
1305    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsMinWindowWidth(options, 100);
1306    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
1307        // 记录错误日志以及其他业务处理
1308    }
1309
1310    // 销毁options,防止内存泄漏
1311    OH_AbilityRuntime_DestroyStartOptions(&options);
1312}
1313```
1314
1315### OH_AbilityRuntime_GetStartOptionsMinWindowWidth()
1316
1317```
1318AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsMinWindowWidth(AbilityRuntime_StartOptions *startOptions, int32_t &minWindowWidth)
1319```
1320
1321**描述**
1322
1323获取启动Ability时的窗口最小宽度,单位为vp。
1324
1325**起始版本:** 17
1326
1327**参数:**
1328
1329| 参数项 | 描述 |
1330| -- | -- |
1331| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
1332| int32_t &minWindowWidth | 启动Ability时的窗口最小宽度,单位为vp。 |
1333
1334**返回:**
1335
1336| 类型 | 说明 |
1337| -- | -- |
1338| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
1339
1340**示例代码:**
1341
1342```cpp
1343#include <AbilityKit/ability_runtime/start_options.h>
1344
1345void demo()
1346{
1347    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
1348    if (options == nullptr) {
1349        // 记录错误日志以及其他业务处理
1350        return;
1351    }
1352
1353    int32_t minWindowWidth = 0;
1354    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsMinWindowWidth(options, minWindowWidth);
1355    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
1356        // 记录错误日志以及其他业务处理
1357    }
1358
1359    // 销毁options,防止内存泄漏
1360    OH_AbilityRuntime_DestroyStartOptions(&options);
1361}
1362```
1363
1364### OH_AbilityRuntime_SetStartOptionsMaxWindowWidth()
1365
1366```
1367AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsMaxWindowWidth(AbilityRuntime_StartOptions *startOptions, int32_t maxWindowWidth)
1368```
1369
1370**描述**
1371
1372设置启动Ability时的窗口最大宽度,单位为vp。
1373
1374**起始版本:** 17
1375
1376
1377**参数:**
1378
1379| 参数项 | 描述 |
1380| -- | -- |
1381| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
1382| int32_t maxWindowWidth | 启动Ability时的窗口最大宽度,单位为vp。 |
1383
1384**返回:**
1385
1386| 类型 | 说明 |
1387| -- | -- |
1388| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
1389
1390**示例代码:**
1391
1392```cpp
1393#include <AbilityKit/ability_runtime/start_options.h>
1394
1395void demo()
1396{
1397    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
1398    if (options == nullptr) {
1399        // 记录错误日志以及其他业务处理
1400        return;
1401    }
1402
1403    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsMaxWindowWidth(options, 100);
1404    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
1405        // 记录错误日志以及其他业务处理
1406    }
1407
1408    // 销毁options,防止内存泄漏
1409    OH_AbilityRuntime_DestroyStartOptions(&options);
1410}
1411```
1412
1413### OH_AbilityRuntime_GetStartOptionsMaxWindowWidth()
1414
1415```
1416AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsMaxWindowWidth(AbilityRuntime_StartOptions *startOptions, int32_t &maxWindowWidth)
1417```
1418
1419**描述**
1420
1421获取启动Ability时的窗口最大宽度,单位为vp。
1422
1423**起始版本:** 17
1424
1425
1426**参数:**
1427
1428| 参数项 | 描述 |
1429| -- | -- |
1430| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
1431| int32_t &maxWindowWidth | 启动Ability时的窗口最大宽度,单位为vp。 |
1432
1433**返回:**
1434
1435| 类型 | 说明 |
1436| -- | -- |
1437| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
1438
1439**示例代码:**
1440
1441```cpp
1442#include <AbilityKit/ability_runtime/start_options.h>
1443
1444void demo()
1445{
1446    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
1447    if (options == nullptr) {
1448        // 记录错误日志以及其他业务处理
1449        return;
1450    }
1451
1452    int32_t maxWindowWidth = 0;
1453    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsMaxWindowWidth(options, maxWindowWidth);
1454    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
1455        // 记录错误日志以及其他业务处理
1456    }
1457
1458    // 销毁options,防止内存泄漏
1459    OH_AbilityRuntime_DestroyStartOptions(&options);
1460}
1461```
1462
1463### OH_AbilityRuntime_SetStartOptionsMinWindowHeight()
1464
1465```
1466AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsMinWindowHeight(AbilityRuntime_StartOptions *startOptions, int32_t minWindowHeight)
1467```
1468
1469**描述**
1470
1471设置启动Ability时的窗口最小高度,单位为vp。
1472
1473**起始版本:** 17
1474
1475**参数:**
1476
1477| 参数项 | 描述 |
1478| -- | -- |
1479| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
1480| int32_t minWindowHeight | 启动Ability时的窗口最小高度,单位为vp。 |
1481
1482**返回:**
1483
1484| 类型 | 说明 |
1485| -- | -- |
1486| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
1487
1488**示例代码:**
1489
1490```cpp
1491#include <AbilityKit/ability_runtime/start_options.h>
1492
1493void demo()
1494{
1495    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
1496    if (options == nullptr) {
1497        // 记录错误日志以及其他业务处理
1498        return;
1499    }
1500
1501    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsMinWindowHeight(options, 100);
1502    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
1503        // 记录错误日志以及其他业务处理
1504    }
1505
1506    // 销毁options,防止内存泄漏
1507    OH_AbilityRuntime_DestroyStartOptions(&options);
1508}
1509```
1510
1511### OH_AbilityRuntime_GetStartOptionsMinWindowHeight()
1512
1513```
1514AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsMinWindowHeight(AbilityRuntime_StartOptions *startOptions, int32_t &minWindowHeight)
1515```
1516
1517**描述**
1518
1519获取启动Ability时的窗口最小高度,单位为vp。
1520
1521**起始版本:** 17
1522
1523
1524**参数:**
1525
1526| 参数项 | 描述 |
1527| -- | -- |
1528| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
1529| int32_t &minWindowHeight | 启动Ability时的窗口最小高度,单位为vp。 |
1530
1531**返回:**
1532
1533| 类型 | 说明 |
1534| -- | -- |
1535| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
1536
1537**示例代码:**
1538
1539```cpp
1540#include <AbilityKit/ability_runtime/start_options.h>
1541
1542void demo()
1543{
1544    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
1545    if (options == nullptr) {
1546        // 记录错误日志以及其他业务处理
1547        return;
1548    }
1549
1550    int32_t minWindowHeight = 0;
1551    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsMinWindowHeight(options, minWindowHeight);
1552    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
1553        // 记录错误日志以及其他业务处理
1554    }
1555
1556    // 销毁options,防止内存泄漏
1557    OH_AbilityRuntime_DestroyStartOptions(&options);
1558}
1559```
1560
1561### OH_AbilityRuntime_SetStartOptionsMaxWindowHeight()
1562
1563```
1564AbilityRuntime_ErrorCode OH_AbilityRuntime_SetStartOptionsMaxWindowHeight(AbilityRuntime_StartOptions *startOptions, int32_t maxWindowHeight)
1565```
1566
1567**描述**
1568
1569设置启动Ability时的窗口最大高度,单位为vp。
1570
1571**起始版本:** 17
1572
1573
1574**参数:**
1575
1576| 参数项 | 描述 |
1577| -- | -- |
1578| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
1579| int32_t maxWindowHeight | 启动Ability时的窗口最大高度,单位为vp。 |
1580
1581**返回:**
1582
1583| 类型 | 说明 |
1584| -- | -- |
1585| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
1586
1587**示例代码:**
1588
1589```cpp
1590#include <AbilityKit/ability_runtime/start_options.h>
1591
1592void demo()
1593{
1594    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
1595    if (options == nullptr) {
1596        // 记录错误日志以及其他业务处理
1597        return;
1598    }
1599
1600    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_SetStartOptionsMaxWindowHeight(options, 100);
1601    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
1602        // 记录错误日志以及其他业务处理
1603    }
1604
1605    // 销毁options,防止内存泄漏
1606    OH_AbilityRuntime_DestroyStartOptions(&options);
1607}
1608```
1609
1610### OH_AbilityRuntime_GetStartOptionsMaxWindowHeight()
1611
1612```
1613AbilityRuntime_ErrorCode OH_AbilityRuntime_GetStartOptionsMaxWindowHeight(AbilityRuntime_StartOptions *startOptions, int32_t &maxWindowHeight)
1614```
1615
1616**描述**
1617
1618获取启动Ability时的窗口最大高度,单位为vp。
1619
1620**起始版本:** 17
1621
1622
1623**参数:**
1624
1625| 参数项 | 描述 |
1626| -- | -- |
1627| [AbilityRuntime_StartOptions](capi-abilityruntime-startoptions.md) *startOptions | AbilityRuntime_StartOptions对象。 |
1628| int32_t &maxWindowHeight | 启动Ability时的窗口最大高度,单位为vp。 |
1629
1630**返回:**
1631
1632| 类型 | 说明 |
1633| -- | -- |
1634| [AbilityRuntime_ErrorCode](capi-ability-runtime-common-h.md#abilityruntime_errorcode) | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示接口调用成功。<br>在返回ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID时,表示StartOptions为空。 |
1635
1636**示例代码:**
1637
1638```cpp
1639#include <AbilityKit/ability_runtime/start_options.h>
1640
1641void demo()
1642{
1643    AbilityRuntime_StartOptions* options = OH_AbilityRuntime_CreateStartOptions();
1644    if (options == nullptr) {
1645        // 记录错误日志以及其他业务处理
1646        return;
1647    }
1648
1649    int32_t maxWindowHeight = 0;
1650    AbilityRuntime_ErrorCode err = OH_AbilityRuntime_GetStartOptionsMaxWindowHeight(options, maxWindowHeight);
1651    if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) {
1652        // 记录错误日志以及其他业务处理
1653    }
1654
1655    // 销毁options,防止内存泄漏
1656    OH_AbilityRuntime_DestroyStartOptions(&options);
1657}
1658```
1659