1# AbilityBase 2 3## 概述 4 5作为Ability Kit的基础定义模块,AbilityBase提供了组件启动参数[Want](want__8h.md)的定义与接口,可以用于应用组件间的信息传递。 6 7**系统能力**:SystemCapability.Ability.AbilityBase 8 9**起始版本**:15 10 11## 汇总 12 13 14### 文件 15 16| 名称 | 描述 | 17| -------- | -------- | 18| [ability_base_common.h](ability__base__common_8h.md) | 声明AbilityBase相关错误码。<br/>**引用文件**:<AbilityKit/ability_base/ability_base_common.h><br/>**库**:libability_base_want.so | 19| [want.h](want__8h.md) | 声明[Want](want__8h.md)相关能力。<br/>**引用文件**:<AbilityKit/ability_base/want.h><br/>**库**:libability_base_want.so | 20 21### 枚举 22 23| 名称 | 描述 | 24| ------------------------------------------------------------ | ---------------------- | 25| [AbilityBase_ErrorCode](#abilitybase_errorcode) {<br> ABILITY_BASE_ERROR_CODE_NO_ERROR = 0,<br> ABILITY_BASE_ERROR_CODE_PARAM_INVALID = 401,<br/>} | 定义AbilityBase相关错误码。 | 26 27### 结构体 28 29| 名称 | 描述 | 30| ------------------------------------------------------------ | ---------------------------- | 31| [AbilityBase_Element](_ability_base_element.md#abilitybase_element) {<br/> char* bundleName;<br/> char* moduleName;<br/> char* abilityName;<br/>} | Element数据结构。 | 32| [AbilityBase_Want](#abilitybase_want) | Want数据结构。 | 33 34### 函数 35 36| 名称 | 描述 | 37| ------------------------------------------------------------ | ---------------------------- | 38| [AbilityBase_Want](#abilitybase_want)* [OH_AbilityBase_CreateWant](#oh_abilitybase_createwant)([AbilityBase_Element](_ability_base_element.md#abilitybase_element) element) | 创建Want。 | 39| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_DestroyWant](#oh_abilitybase_destroywant)([AbilityBase_Want](#abilitybase_want)* want) | 销毁Want。销毁后的Want不可使用,否则会导致未定义行为。 | 40| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_SetWantElement](#oh_abilitybase_setwantelement)([AbilityBase_Want](#abilitybase_want)* want, [AbilityBase_Element](_ability_base_element.md#abilitybase_element) element) | 设置Want中由bundleName、moduleName与abilityName组成的Element结构体。 | 41| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_GetWantElement](#oh_abilitybase_getwantelement)([AbilityBase_Want](#abilitybase_want)* want, [AbilityBase_Element](_ability_base_element.md#abilitybase_element)* element) | 获取Want中由bundleName、moduleName与abilityName组成的Element结构体。 | 42| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_SetWantCharParam](#oh_abilitybase_setwantcharparam)([AbilityBase_Want](#abilitybase_want)* want, const char* key, const char* value) | 设置Want Param参数,Param可参考[Want中的parameters参数](js-apis-inner-ability-want.md)。 | 43| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_GetWantCharParam](#oh_abilitybase_getwantcharparam)([AbilityBase_Want](#abilitybase_want)* want, const char* key, char* value, size_t valueSize) | 获取[OH_AbilityBase_SetWantCharParam](#oh_abilitybase_setwantcharparam)方法设置的Want Param参数。 | 44| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_AddWantFd](#oh_abilitybase_addwantfd)([AbilityBase_Want](#abilitybase_want)* want, const char* key, int32_t fd) | 添加Want文件描述符,文件描述符可通过[fs.open](../apis-core-file-kit/js-apis-file-fs.md#fsopen)获取。 | 45| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_GetWantFd](#oh_abilitybase_getwantfd)([AbilityBase_Want](#abilitybase_want)* want, const char* key, int32_t* fd) | 获取Want文件描述符。 | 46| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_SetWantUri](#oh_abilitybase_setwanturi)([AbilityBase_Want](#abilitybase_want)* want, const char* uri) | 设置Want中uri字符串。uri可参考[Want中uri描述](js-apis-app-ability-want.md)。 | 47| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_GetWantUri](#oh_abilitybase_getwanturi)([AbilityBase_Want](#abilitybase_want)* want, char* uri, size_t uriSize) | 获取Want中uri字符串。uri可参考[Want中uri描述](js-apis-app-ability-want.md)。 | 48| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_SetWantInt32Param](#oh_abilitybase_setwantint32param)([AbilityBase_Want](#abilitybase_want)* want, const char* key, int32_t value) | 设置Want中int32_t类型的值。 | 49| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_GetWantInt32Param](#oh_abilitybase_getwantint32param)([AbilityBase_Want](#abilitybase_want)* want, const char* key, int32_t* value) | 获取Want中int32_t类型的值。 | 50| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_SetWantBoolParam](#oh_abilitybase_setwantboolparam)([AbilityBase_Want](#abilitybase_want)* want, const char* key, bool value) | 设置Want中bool类型的值。 | 51| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_GetWantBoolParam](#oh_abilitybase_getwantboolparam)([AbilityBase_Want](#abilitybase_want)* want, const char* key, bool* value) | 获取Want中bool类型的值。 | 52| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_SetWantDoubleParam](#oh_abilitybase_setwantdoubleparam)([AbilityBase_Want](#abilitybase_want)* want, const char* key, double value) | 设置Want中double类型的值。 | 53| [AbilityBase_ErrorCode](#abilitybase_errorcode) [OH_AbilityBase_GetWantDoubleParam](#oh_abilitybase_getwantdoubleparam)([AbilityBase_Want](#abilitybase_want)* want, const char* key, double* value) | 获取Want中double类型的值。 | 54 55 56 57## 枚举类型说明 58 59### AbilityBase_ErrorCode 60 61``` 62enum AbilityBase_ErrorCode 63``` 64 65**描述** 66 67定义AbilityBase相关错误码。 68 69**起始版本**:15 70 71| 枚举值 | 描述 | 72| --------------------------------------------- | -------------- | 73| ABILITY_BASE_ERROR_CODE_NO_ERROR | 操作成功。 | 74| ABILITY_BASE_ERROR_CODE_PARAM_INVALID | 无效参数。 | 75 76 77## 结构体说明 78 79### AbilityBase_Want 80 81``` 82AbilityBase_Want 83``` 84 85**描述** 86 87Want数据结构。 88 89**起始版本**:15 90 91 92## 函数说明 93 94 95### OH_AbilityBase_CreateWant 96 97``` 98AbilityBase_Want* OH_AbilityBase_CreateWant(AbilityBase_Element element) 99``` 100**描述** 101 102创建Want。 103 104**起始版本**:15 105 106**参数:** 107 108| 名称 | 描述 | 109| -------- | -------- | 110| element | Element数据结构。 | 111 112**返回:** 113 114AbilityBase_Want - want数据结构。 115 116 117### OH_AbilityBase_DestroyWant 118 119``` 120AbilityBase_ErrorCode OH_AbilityBase_DestroyWant(AbilityBase_Want* want) 121``` 122**描述** 123 124销毁Want。销毁后的Want不可使用,否则会导致未定义行为。 125 126**起始版本**:15 127 128**参数:** 129 130| 名称 | 描述 | 131| -------- | -------- | 132| want | Want指针。 | 133 134**返回:** 135 136ABILITY_BASE_ERROR_CODE_NO_ERROR - 销毁want成功。 137 138ABILITY_BASE_ERROR_CODE_PARAM_INVALID - element参数无效。 139 140### OH_AbilityBase_SetWantElement 141 142``` 143AbilityBase_ErrorCode OH_AbilityBase_SetWantElement(AbilityBase_Want* want, AbilityBase_Element element) 144``` 145**描述** 146 147设置Want中由bundleName、moduleName与abilityName组成的Element结构体。 148 149**起始版本**:15 150 151**参数:** 152 153| 名称 | 描述 | 154| -------- | -------- | 155| want | Want指针。 | 156| element | Element结构体。 | 157 158**返回:** 159 160ABILITY_BASE_ERROR_CODE_NO_ERROR - 设置element成功。 161 162ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空,element参数无效。 163 164### OH_AbilityBase_GetWantElement 165 166``` 167AbilityBase_ErrorCode OH_AbilityBase_GetWantElement(AbilityBase_Want* want, AbilityBase_Element* element) 168``` 169**描述** 170 171获取Want中由bundleName、moduleName与abilityName组成的Element结构体。 172 173**起始版本**:15 174 175**参数:** 176 177| 名称 | 描述 | 178| -------- | -------- | 179| want | Want指针。 | 180| element | Element结构体指针。 | 181 182**返回:** 183 184ABILITY_BASE_ERROR_CODE_NO_ERROR - 获取element成功。 185 186ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空,element参数无效。 187 188### OH_AbilityBase_SetWantCharParam 189 190``` 191AbilityBase_ErrorCode OH_AbilityBase_SetWantCharParam(AbilityBase_Want* want, const char* key, const char* value) 192``` 193**描述** 194 195设置Want Param参数,Param可参考[Want中的parameters参数](js-apis-inner-ability-want.md)。 196 197**起始版本**:15 198 199**参数:** 200 201| 名称 | 描述 | 202| -------- | -------- | 203| want | Want指针。 | 204| key | Want中字符串参数索引。 | 205| value | Want中字符串。 | 206 207**返回:** 208 209ABILITY_BASE_ERROR_CODE_NO_ERROR - 设置param成功。 210 211ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空或非法入参。 212 213### OH_AbilityBase_GetWantCharParam 214 215``` 216AbilityBase_ErrorCode OH_AbilityBase_GetWantCharParam(AbilityBase_Want* want, const char* key, char* value, size_t valueSize) 217``` 218**描述** 219 220获取[OH_AbilityBase_SetWantCharParam](#oh_abilitybase_setwantcharparam)方法设置的Want Param参数。 221 222**起始版本**:15 223 224**参数:** 225 226| 名称 | 描述 | 227| -------- | -------- | 228| want | Want指针。 | 229| key | Want中字符串参数索引。 | 230| value | Want中字符串。 | 231| valueSize | value字符串长度。如果valueSize小于实际需要获取的value长度,则会报ABILITY_BASE_ERROR_CODE_PARAM_INVALID错误。 | 232 233**返回:** 234 235ABILITY_BASE_ERROR_CODE_NO_ERROR - 获取param成功。 236 237ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空或非法入参。 238 239### OH_AbilityBase_AddWantFd 240 241``` 242AbilityBase_ErrorCode OH_AbilityBase_AddWantFd(AbilityBase_Want* want, const char* key, int32_t fd) 243``` 244**描述** 245 246添加Want文件描述符,文件描述符可通过[fs.open](../apis-core-file-kit/js-apis-file-fs.md#fsopen)获取。 247 248**起始版本**:15 249 250**参数:** 251 252| 名称 | 描述 | 253| -------- | -------- | 254| want | Want指针。 | 255| key | Want中字符串参数索引。 | 256| fd | 文件描述符,可通过[fs.open](../apis-core-file-kit/js-apis-file-fs.md#fsopen)获取。 | 257 258**返回:** 259 260ABILITY_BASE_ERROR_CODE_NO_ERROR - 添加want文件描述符成功。 261 262ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空或非法入参。 263 264### OH_AbilityBase_GetWantFd 265 266``` 267AbilityBase_ErrorCode OH_AbilityBase_GetWantFd(AbilityBase_Want* want, const char* key, int32_t* fd) 268``` 269**描述** 270 271获取Want文件描述符。 272 273**起始版本**:15 274 275**参数:** 276 277| 名称 | 描述 | 278| -------- | -------- | 279| want | Want指针。 | 280| key | Want中字符串参数索引。 | 281| fd | 文件描述符。 | 282 283**返回:** 284 285ABILITY_BASE_ERROR_CODE_NO_ERROR - 获取Want文件描述符成功。 286 287ABILITY_BASE_ERROR_CODE_PARAM_INVALID - Want为空或非法入参。 288 289### OH_AbilityBase_SetWantUri 290 291``` 292AbilityBase_ErrorCode OH_AbilityBase_SetWantUri(AbilityBase_Want* want, const char* uri) 293``` 294**描述** 295 296设置Want中URI字符串。URI可参考[Want中URI描述](js-apis-app-ability-want.md)。 297 298**起始版本**:17 299 300**参数:** 301 302| 名称 | 描述 | 303| -------- | -------- | 304| want | Want指针。 | 305| uri | 表示URI。如果在Want中指定了URI,则Want将匹配指定的URI信息。可参考[Want中URI描述](js-apis-app-ability-want.md)。| 306 307**返回:** 308 309ABILITY_BASE_ERROR_CODE_NO_ERROR - 设置Want中uri字符串成功。 310 311ABILITY_BASE_ERROR_CODE_PARAM_INVALID - Want为空或非法入参。 312 313### OH_AbilityBase_GetWantUri 314 315``` 316AbilityBase_ErrorCode OH_AbilityBase_GetWantUri(AbilityBase_Want* want, char* uri, size_t uriSize) 317``` 318**描述** 319 320获取Want中URI字符串。URI可参考[Want中URI描述](js-apis-app-ability-want.md)。 321 322**起始版本**:17 323 324**参数:** 325 326| 名称 | 描述 | 327| -------- | -------- | 328| want | Want指针。 | 329| uri | 表示URI。如果在Want中指定了URI,则Want将匹配指定的URI信息。可参考[Want中URI描述](js-apis-app-ability-want.md)。| 330| uriSize | URI字符串长度。如果uriSize小于实际需要获取的URI长度,则会报ABILITY_BASE_ERROR_CODE_PARAM_INVALID错误。| 331 332**返回:** 333 334ABILITY_BASE_ERROR_CODE_NO_ERROR - 获取Want中URI字符串成功。 335 336ABILITY_BASE_ERROR_CODE_PARAM_INVALID - Want为空或非法入参。 337 338### OH_AbilityBase_SetWantInt32Param 339 340``` 341AbilityBase_ErrorCode OH_AbilityBase_SetWantInt32Param(AbilityBase_Want* want, const char* key, int32_t value) 342``` 343**描述** 344 345设置Want中int32_t类型的值。 346 347**起始版本**:17 348 349**参数:** 350 351| 名称 | 描述 | 352| -------- | -------- | 353| want | Want指针。 | 354| key | Want中int32_t类型值的参数索引。 | 355| value | Want中int32_t类型的值。 | 356 357**返回:** 358 359ABILITY_BASE_ERROR_CODE_NO_ERROR - 设置Want中int32_t类型的值成功。 360 361ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空或非法入参。 362 363### OH_AbilityBase_GetWantInt32Param 364 365``` 366AbilityBase_ErrorCode OH_AbilityBase_GetWantInt32Param(AbilityBase_Want* want, const char* key, int32_t* value) 367``` 368**描述** 369 370获取Want中int32_t类型的值。 371 372**起始版本**:17 373 374**参数:** 375 376| 名称 | 描述 | 377| -------- | -------- | 378| want | Want指针。 | 379| key | Want中int32_t类型值的参数索引。 | 380| value | Want中int32_t类型的值。 | 381 382**返回:** 383 384ABILITY_BASE_ERROR_CODE_NO_ERROR - 获取Want中int32_t类型的值成功。 385 386ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空或非法入参。 387 388 389### OH_AbilityBase_SetWantBoolParam 390 391``` 392AbilityBase_ErrorCode OH_AbilityBase_SetWantBoolParam(AbilityBase_Want* want, const char* key, bool value) 393``` 394**描述** 395 396设置Want中bool类型的值。 397 398**起始版本**:17 399 400**参数:** 401 402| 名称 | 描述 | 403| -------- | -------- | 404| want | Want指针。 | 405| key | Want中bool类型值的参数索引。 | 406| value | Want中bool类型的值。 | 407 408**返回:** 409 410ABILITY_BASE_ERROR_CODE_NO_ERROR - 设置Want中bool类型的值成功。 411 412ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空或非法入参。 413 414### OH_AbilityBase_GetWantBoolParam 415 416``` 417AbilityBase_ErrorCode OH_AbilityBase_GetWantBoolParam(AbilityBase_Want* want, const char* key, bool* value) 418``` 419**描述** 420 421获取Want中bool类型的值。 422 423**起始版本**:17 424 425**参数:** 426 427| 名称 | 描述 | 428| -------- | -------- | 429| want | Want指针。 | 430| key | Want中bool类型值的参数索引。 | 431| value | Want中bool类型的值。 | 432 433**返回:** 434 435ABILITY_BASE_ERROR_CODE_NO_ERROR - 获取Want中bool类型的值成功。 436 437ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空或非法入参。 438 439### OH_AbilityBase_SetWantDoubleParam 440 441``` 442AbilityBase_ErrorCode OH_AbilityBase_SetWantDoubleParam(AbilityBase_Want* want, const char* key, double value) 443``` 444**描述** 445 446设置Want中double类型的值。 447 448**起始版本**:17 449 450**参数:** 451 452| 名称 | 描述 | 453| -------- | -------- | 454| want | Want指针。 | 455| key | Want中double类型值的参数索引。 | 456| value | Want中double类型的值。 | 457 458**返回:** 459 460ABILITY_BASE_ERROR_CODE_NO_ERROR - 设置Want中double类型的值成功。 461 462ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空或非法入参。 463 464### OH_AbilityBase_GetWantDoubleParam 465 466``` 467AbilityBase_ErrorCode OH_AbilityBase_GetWantDoubleParam(AbilityBase_Want* want, const char* key, double* value) 468``` 469**描述** 470 471获取Want中double类型的值。 472 473**起始版本**:17 474 475**参数:** 476 477| 名称 | 描述 | 478| -------- | -------- | 479| want | Want指针。 | 480| key | Want中double类型值的参数索引。 | 481| value | Want中double类型的值。 | 482 483**返回:** 484 485ABILITY_BASE_ERROR_CODE_NO_ERROR - 获取Want中double类型的值成功。 486 487ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空或非法入参。