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