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_RUNTIME_ERROR_CODE_NO_ERROR = 0,<br> ABILITY_RUNTIME_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 47 48## 枚举类型说明 49 50### AbilityBase_ErrorCode 51 52``` 53enum AbilityBase_ErrorCode 54``` 55 56**描述** 57 58定义AbilityBase相关错误码。 59 60**起始版本:** 15 61 62| 枚举值 | 描述 | 63| --------------------------------------------- | -------------- | 64| ABILITY_BASE_ERROR_CODE_NO_ERROR | 操作成功。 | 65| ABILITY_BASE_ERROR_CODE_PARAM_INVALID | 无效参数。 | 66 67 68## 结构体说明 69 70### AbilityBase_Want 71 72``` 73AbilityBase_Want 74``` 75 76**描述** 77 78Want数据结构。 79 80**起始版本:** 15 81 82 83## 函数说明 84 85 86### OH_AbilityBase_CreateWant 87 88``` 89AbilityBase_Want* OH_AbilityBase_CreateWant(AbilityBase_Element element) 90``` 91**描述** 92 93创建Want。 94 95**起始版本:** 15 96 97**参数:** 98 99| 名称 | 描述 | 100| -------- | -------- | 101| element | Element数据结构。 | 102 103**返回:** 104 105AbilityBase_Want - want数据结构。 106 107 108### OH_AbilityBase_DestroyWant 109 110``` 111AbilityBase_ErrorCode OH_AbilityBase_DestroyWant(AbilityBase_Want* want) 112``` 113**描述** 114 115销毁Want。销毁后的Want不可使用,否则会导致未定义行为。 116 117**起始版本:** 15 118 119**参数:** 120 121| 名称 | 描述 | 122| -------- | -------- | 123| want | Want指针。 | 124 125**返回:** 126 127ABILITY_BASE_ERROR_CODE_NO_ERROR - 销毁want成功。 128 129ABILITY_BASE_ERROR_CODE_PARAM_INVALID - element参数无效。 130 131### OH_AbilityBase_SetWantElement 132 133``` 134AbilityBase_ErrorCode OH_AbilityBase_SetWantElement(AbilityBase_Want* want, AbilityBase_Element element) 135``` 136**描述** 137 138设置Want中由bundleName、moduleName与abilityName组成的Element结构体。 139 140**起始版本:** 15 141 142**参数:** 143 144| 名称 | 描述 | 145| -------- | -------- | 146| want | Want指针。 | 147| element | Element结构体。 | 148 149**返回:** 150 151ABILITY_BASE_ERROR_CODE_NO_ERROR - 设置element成功。 152 153ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空,element参数无效。 154 155### OH_AbilityBase_GetWantElement 156 157``` 158AbilityBase_ErrorCode OH_AbilityBase_GetWantElement(AbilityBase_Want* want, AbilityBase_Element* element) 159``` 160**描述** 161 162获取Want中由bundleName、moduleName与abilityName组成的Element结构体。 163 164**起始版本:** 15 165 166**参数:** 167 168| 名称 | 描述 | 169| -------- | -------- | 170| want | Want指针。 | 171| element | Element结构体指针。 | 172 173**返回:** 174 175ABILITY_BASE_ERROR_CODE_NO_ERROR - 获取element成功。 176 177ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空,element参数无效。 178 179### OH_AbilityBase_SetWantCharParam 180 181``` 182AbilityBase_ErrorCode OH_AbilityBase_SetWantCharParam(AbilityBase_Want* want, const char* key, const char* value) 183``` 184**描述** 185 186设置Want Param参数,Param可参考[Want中的parameters参数](js-apis-inner-ability-want.md)。 187 188**起始版本:** 15 189 190**参数:** 191 192| 名称 | 描述 | 193| -------- | -------- | 194| want | Want指针。 | 195| key | Want中字符串参数索引。 | 196| value | Want中字符串。 | 197 198**返回:** 199 200ABILITY_BASE_ERROR_CODE_NO_ERROR - 设置param成功。 201 202ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空或非法入参。 203 204### OH_AbilityBase_GetWantCharParam 205 206``` 207AbilityBase_ErrorCode OH_AbilityBase_GetWantCharParam(AbilityBase_Want* want, const char* key, char* value, size_t valueSize) 208``` 209**描述** 210 211获取[OH_AbilityBase_SetWantCharParam](#oh_abilitybase_setwantcharparam)方法设置的Want Param参数。 212 213**起始版本:** 15 214 215**参数:** 216 217| 名称 | 描述 | 218| -------- | -------- | 219| want | Want指针。 | 220| key | Want中字符串参数索引。 | 221| value | Want中字符串。 | 222| valueSize | value字符串长度。如果valueSize小于实际需要获取的value长度,则会报ABILITY_BASE_ERROR_CODE_PARAM_INVALID错误。 | 223 224**返回:** 225 226ABILITY_BASE_ERROR_CODE_NO_ERROR - 获取param成功。 227 228ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空或非法入参。 229 230### OH_AbilityBase_AddWantFd 231 232``` 233AbilityBase_ErrorCode OH_AbilityBase_AddWantFd(AbilityBase_Want* want, const char* key, int32_t fd) 234``` 235**描述** 236 237添加Want文件描述符,文件描述符可通过[fs.open](../apis-core-file-kit/js-apis-file-fs.md#fsopen)获取。 238 239**起始版本:** 15 240 241**参数:** 242 243| 名称 | 描述 | 244| -------- | -------- | 245| want | Want指针。 | 246| key | Want中字符串参数索引。 | 247| fd | 文件描述符,可通过[fs.open](../apis-core-file-kit/js-apis-file-fs.md#fsopen)获取。 | 248 249**返回:** 250 251ABILITY_BASE_ERROR_CODE_NO_ERROR - 添加want文件描述符成功。 252 253ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空或非法入参。 254 255### OH_AbilityBase_GetWantFd 256 257``` 258AbilityBase_ErrorCode OH_AbilityBase_GetWantFd(AbilityBase_Want* want, const char* key, int32_t* fd) 259``` 260**描述** 261 262获取Want文件描述符。 263 264**起始版本:** 15 265 266**参数:** 267 268| 名称 | 描述 | 269| -------- | -------- | 270| want | Want指针。 | 271| key | Want中字符串参数索引。 | 272| fd | 文件描述符。 | 273 274**返回:** 275 276ABILITY_BASE_ERROR_CODE_NO_ERROR - 获取want文件描述符成功。 277 278ABILITY_BASE_ERROR_CODE_PARAM_INVALID - want为空或非法入参。 279