1# AbilityRuntime 2 3 4## 概述 5 6提供元能力基础框架的相关能力。 7 8**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 9 10**起始版本**:13 11 12 13## 汇总 14 15 16### 文件 17 18| 名称 | 描述 | 19| -------- | -------- | 20| [ability_runtime_common.h](ability__runtime__common_8h.md) | 声明元能力子系统的相关错误码。<br/>**引用文件**:<AbilityKit/ability_runtime/ability_runtime_common.h><br/>**库**:libability_runtime.so | 21| [application_context.h](application__context_8h.md) | 声明应用级别的上下文能力。<br/>**引用文件**:<AbilityKit/ability_runtime/application_context.h><br/>**库**:libability_runtime.so | 22| [context_constant.h](context__constant_8h.md) | 声明上下文相关的枚举。<br/>**引用文件**:<AbilityKit/ability_runtime/context_constant.h><br/>**库**:libability_runtime.so | 23 24### 枚举 25 26| 名称 | 描述 | 27| ------------------------------------------------------------ | ---------------------- | 28| [AbilityRuntime_ErrorCode](#abilityruntime_errorcode) {<br> ABILITY_RUNTIME_ERROR_CODE_NO_ERROR = 0,<br> ABILITY_RUNTIME_ERROR_CODE_PERMISSION_DENIED = 201,<br> ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID = 401,<br> ABILITY_RUNTIME_ERROR_CODE_NOT_SUPPORTED = 801,<br> ABILITY_RUNTIME_ERROR_CODE_NO_SUCH_ABILITY = 16000001,<br> ABILITY_RUNTIME_ERROR_CODE_INCORRECT_ABILITY_TYPE = 16000002,<br> ABILITY_RUNTIME_ERROR_CODE_CROWDTEST_EXPIRED = 16000008,<br> ABILITY_RUNTIME_ERROR_CODE_WUKONG_MODE = 16000009,<br> ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST = 16000011,<br> ABILITY_RUNTIME_ERROR_CODE_CONTROLLED = 16000012,<br> ABILITY_RUNTIME_ERROR_CODE_EDM_CONTROLLED = 16000013,<br> ABILITY_RUNTIME_ERROR_CODE_CROSS_APP = 16000018,<br> ABILITY_RUNTIME_ERROR_CODE_INTERNAL = 16000050,<br> ABILITY_RUNTIME_ERROR_CODE_NOT_TOP_ABILITY = 16000053,<br/>} | 定义元能力模块错误码。 | 29| [AbilityRuntime_AreaMode](#abilityruntime_areamode) {<br/> ABILITY_RUNTIME_AREA_MODE_EL1 = 0,<br/> ABILITY_RUNTIME_AREA_MODE_EL2 = 1,<br/> ABILITY_RUNTIME_AREA_MODE_EL3 = 2,<br/> ABILITY_RUNTIME_AREA_MODE_EL4 = 3,<br/> ABILITY_RUNTIME_AREA_MODE_EL5 = 4<br/>} | 定义数据加密等级。 | 30 31### 函数 32 33| 名称 | 描述 | 34| -------- | -------- | 35| [AbilityRuntime_ErrorCode](#abilityruntime_errorcode) [OH_AbilityRuntime_ApplicationContextGetCacheDir](#oh_abilityruntime_applicationcontextgetcachedir)(char* buffer, int32_t bufferSize, int32_t* writeLength) | 获取应用级别的缓存目录。 | 36| [AbilityRuntime_ErrorCode](#abilityruntime_errorcode) [OH_AbilityRuntime_ApplicationContextGetAreaMode](#oh_abilityruntime_applicationcontextgetareamode)([AbilityRuntime_AreaMode](#abilityruntime_areamode)* areaMode) | 获取应用级别的数据加密等级。 | 37| [AbilityRuntime_ErrorCode](#abilityruntime_errorcode) [OH_AbilityRuntime_ApplicationContextGetBundleName](#oh_abilityruntime_applicationcontextgetbundlename)(char* buffer, int32_t bufferSize, int32_t* writeLength) | 获取应用包名。 | 38| [AbilityRuntime_ErrorCode](#abilityruntime_errorcode) [OH_AbilityRuntime_StartSelfUIAbility](#oh_abilityruntime_startselfuiability)([AbilityBase_Want](_ability_base.md#abilitybase_want) *want) | 启动当前应用的UIAbility。 | 39| [AbilityRuntime_ErrorCode](#abilityruntime_errorcode) [OH_AbilityRuntime_ApplicationContextGetTempDir](#oh_abilityruntime_applicationcontextgettempdir)(char* buffer, const int32_t bufferSize, int32_t* writeLength) | 获取应用级别的临时文件目录。 | 40| [AbilityRuntime_ErrorCode](#abilityruntime_errorcode) [OH_AbilityRuntime_ApplicationContextGetFilesDir](#oh_abilityruntime_applicationcontextgetfilesdir)(char* buffer, const int32_t bufferSize, int32_t* writeLength) | 获取应用级别的通用文件目录。 | 41| [AbilityRuntime_ErrorCode](#abilityruntime_errorcode) [OH_AbilityRuntime_ApplicationContextGetDatabaseDir](#oh_abilityruntime_applicationcontextgetdatabasedir)(char* buffer, const int32_t bufferSize, int32_t* writeLength) | 获取应用级别的数据库文件目录。 | 42| [AbilityRuntime_ErrorCode](#abilityruntime_errorcode) [OH_AbilityRuntime_ApplicationContextGetPreferencesDir](#oh_abilityruntime_applicationcontextgetpreferencesdir)(char* buffer, const int32_t bufferSize, int32_t* writeLength) | 获取应用级别的首选项文件目录。 | 43| [AbilityRuntime_ErrorCode](#abilityruntime_errorcode) [OH_AbilityRuntime_ApplicationContextGetBundleCodeDir](#oh_abilityruntime_applicationcontextgetbundlecodedir)(char* buffer, const int32_t bufferSize, int32_t* writeLength) | 获取应用级别的安装文件目录。 | 44| [AbilityRuntime_ErrorCode](#abilityruntime_errorcode) [OH_AbilityRuntime_ApplicationContextGetDistributedFilesDir](#oh_abilityruntime_applicationcontextgetdistributedfilesdir)(char* buffer, const int32_t bufferSize, int32_t* writeLength) | 获取应用级别的分布式文件目录。 | 45| [AbilityRuntime_ErrorCode](#abilityruntime_errorcode) [OH_AbilityRuntime_ApplicationContextGetCloudFileDir](#oh_abilityruntime_applicationcontextgetcloudfiledir)(char* buffer, const int32_t bufferSize, int32_t* writeLength) | 获取应用级别的云文件目录。 | 46 47## 枚举类型说明 48 49### AbilityRuntime_ErrorCode 50 51``` 52enum AbilityRuntime_ErrorCode 53``` 54 55**描述** 56 57定义元能力模块错误码。 58 59**起始版本**:13 60 61| 枚举值 | 描述 | 62| --------------------------------------------- | -------------- | 63| ABILITY_RUNTIME_ERROR_CODE_NO_ERROR | 操作成功。 | 64| ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID | 无效参数。 | 65| ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST | 上下文不存在。 | 66| ABILITY_RUNTIME_ERROR_CODE_PERMISSION_DENIED | 权限校验失败。<br/>**起始版本:** 15 | 67| ABILITY_RUNTIME_ERROR_CODE_NOT_SUPPORTED | 设备类型不支持。<br/>**起始版本:** 15 | 68| ABILITY_RUNTIME_ERROR_CODE_NO_SUCH_ABILITY | 指定的Ability名称不存在。<br/>**起始版本:** 15 | 69| ABILITY_RUNTIME_ERROR_CODE_INCORRECT_ABILITY_TYPE | 接口调用Ability类型错误。<br/>**起始版本:** 15 | 70| ABILITY_RUNTIME_ERROR_CODE_CROWDTEST_EXPIRED | 众测应用到期。<br/>**起始版本:** 15 | 71| ABILITY_RUNTIME_ERROR_CODE_WUKONG_MODE | wukong模式,不允许启动/停止ability。<br/>**起始版本:** 15 | 72| ABILITY_RUNTIME_ERROR_CODE_CONTROLLED | 应用被管控。<br/>**起始版本:** 15 | 73| ABILITY_RUNTIME_ERROR_CODE_EDM_CONTROLLED | 应用被EDM管控。<br/>**起始版本:** 15 | 74| ABILITY_RUNTIME_ERROR_CODE_CROSS_APP | 限制API 11以上版本三方应用跳转。<br/>**起始版本:** 15 | 75| ABILITY_RUNTIME_ERROR_CODE_INTERNAL | 内部错误。<br/>**起始版本:** 15 | 76| ABILITY_RUNTIME_ERROR_CODE_NOT_TOP_ABILITY | 非顶层应用。<br/>**起始版本:** 15 | 77 78### AbilityRuntime_AreaMode 79 80``` 81enum AbilityRuntime_AreaMode 82``` 83 84**描述** 85 86定义数据加密等级。 87 88**起始版本**:13 89 90| 枚举值 | 描述 | 91| ----------------------------- | ------------------------------------------------------------ | 92| ABILITY_RUNTIME_AREA_MODE_EL1 | 对于私有文件,如闹铃、壁纸等,应用可以将这些文件放到设备级加密分区(EL1)中,以保证在用户输入密码前就可以被访问。 | 93| ABILITY_RUNTIME_AREA_MODE_EL2 | 对于更敏感的文件,如个人隐私信息等,应用可以将这些文件放到更高级别的加密分区(EL2)中,以保证更高的安全性。 | 94| ABILITY_RUNTIME_AREA_MODE_EL3 | 对于应用中的记录步数、文件下载、音乐播放,需要在锁屏时读写和创建新文件,放在(EL3)的加密分区比较合适。 | 95| ABILITY_RUNTIME_AREA_MODE_EL4 | 对于用户安全信息相关的文件,锁屏时不需要读写文件、也不能创建文件,放在(EL4)的加密分区更合适。 | 96| ABILITY_RUNTIME_AREA_MODE_EL5 | 对于用户隐私敏感数据文件,锁屏后默认不可读写,如果锁屏后需要读写文件,则锁屏前可以调用[Access](js-apis-screenLockFileManager.md#screenlockfilemanageracquireaccess)接口申请继续读写文件,或者锁屏后也需要创建新文件且可读写,放在(EL5)的应用级加密分区更合适。 | 97 98## 函数说明 99 100 101### OH_AbilityRuntime_ApplicationContextGetCacheDir 102 103``` 104AbilityRuntime_ErrorCode OH_AbilityRuntime_ApplicationContextGetCacheDir(char* buffer, int32_t bufferSize, int32_t* writeLength) 105``` 106**描述** 107 108获取应用级别的缓存目录。 109 110**起始版本**:13 111 112**参数:** 113 114| 名称 | 描述 | 115| -------- | -------- | 116| buffer | 缓冲区,缓存目录字符串写入该区域。 | 117| bufferSize | 缓冲区大小。 | 118| writeLength | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示实际写入到缓冲区的字符串长度。 | 119 120**返回:** 121 122ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 查询成功。 123 124ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - 入参buffer或者writeLength为空,或者缓冲区大小小于需要写入的大小。 125 126ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST - 当前环境的上下文不存在,如在应用创建的[子进程](c-apis-ability-childprocess.md)中应用级别上下文不存在。 127 128### OH_AbilityRuntime_ApplicationContextGetAreaMode 129 130``` 131AbilityRuntime_ErrorCode OH_AbilityRuntime_ApplicationContextGetAreaMode(AbilityRuntime_AreaMode* areaMode) 132``` 133 134**描述** 135 136获取应用级别的数据加密等级。 137 138**起始版本**:13 139 140**参数:** 141 142| 名称 | 描述 | 143| -------- | ------------------------ | 144| areaMode | 用于接受加密等级的指针。 | 145 146**返回:** 147 148ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 查询成功。 149 150ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - 入参areaMode为空。 151 152ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST - 当前环境的上下文不存在,如在应用创建的[子进程](c-apis-ability-childprocess.md)中应用级别上下文不存在。 153 154### OH_AbilityRuntime_ApplicationContextGetBundleName 155 156``` 157AbilityRuntime_ErrorCode OH_AbilityRuntime_ApplicationContextGetBundleName(char* buffer, int32_t bufferSize, int32_t* writeLength) 158``` 159 160**描述** 161 162获取应用包名。 163 164**起始版本**:13 165 166**参数:** 167 168| 名称 | 描述 | 169| ----------- | ------------------------------------------------------------ | 170| buffer | 缓冲区,应用包名字符串写入该区域。 | 171| bufferSize | 缓冲区大小。 | 172| writeLength | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示实际写入到缓冲区的字符串长度。 | 173 174**返回:** 175 176ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 查询成功。 177 178ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - 入参buffer或者writeLength为空,或者缓冲区大小小于需要写入的大小。 179 180ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST - 当前环境的上下文不存在,如在应用创建的[子进程](c-apis-ability-childprocess.md)中应用级别上下文不存在。 181 182### OH_AbilityRuntime_StartSelfUIAbility 183 184``` 185AbilityRuntime_ErrorCode OH_AbilityRuntime_StartSelfUIAbility(AbilityBase_Want *want) 186``` 187 188**描述** 189 190启动当前应用的UIAbility。 191 192> **说明:** 193> 194> 当前仅支持2in1设备。 195 196**需要权限**:ohos.permission.NDK_START_SELF_UI_ABILITY 197 198**起始版本:** 15 199 200**参数:** 201 202| 名称 | 描述 | 203| ----------- | ------------------------------------------------------------ | 204| want | 启动当前应用UIAbility时需要的Want信息。 | 205 206**返回:** 207 208ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 接口调用成功。 209 210ABILITY_RUNTIME_ERROR_CODE_PERMISSION_DENIED - 权限校验失败。 211 212ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - Want信息为空,或者Want信息里bundleName或abilityName为空。 213 214ABILITY_RUNTIME_ERROR_CODE_NOT_SUPPORTED - 设备类型不支持。 215 216ABILITY_RUNTIME_ERROR_CODE_NO_SUCH_ABILITY - 指定的Ability名称不存在。 217 218ABILITY_RUNTIME_ERROR_CODE_INCORRECT_ABILITY_TYPE - 接口调用Ability类型错误。 219 220ABILITY_RUNTIME_ERROR_CODE_CROWDTEST_EXPIRED - 众测应用到期。 221 222ABILITY_RUNTIME_ERROR_CODE_WUKONG_MODE - wukong模式,不允许启动/停止Ability。 223 224ABILITY_RUNTIME_ERROR_CODE_CONTROLLED - 应用被管控。 225 226ABILITY_RUNTIME_ERROR_CODE_EDM_CONTROLLED - 应用被EDM管控。 227 228ABILITY_RUNTIME_ERROR_CODE_CROSS_APP - 限制API 11以上版本三方应用跳转。 229 230ABILITY_RUNTIME_ERROR_CODE_INTERNAL - 内部错误。 231 232ABILITY_RUNTIME_ERROR_CODE_NOT_TOP_ABILITY - 非顶层应用。 233 234**示例代码:** 235```cpp 236#include <AbilityKit/ability_base/want.h> 237#include <AbilityKit/ability_runtime/application_context.h> 238 239void startSelfUIAbilityTest() 240{ 241 AbilityBase_Element element; 242 element.abilityName = const_cast<char*>("EntryAbility"); 243 element.bundleName = const_cast<char*>("com.exampl.myapplication"); 244 element.moduleName = const_cast<char*>("entry"); 245 AbilityBase_Want* want = OH_AbilityBase_CreateWant(element); 246 247 AbilityRuntime_ErrorCode err = OH_AbilityRuntime_StartSelfUIAbility(want); 248 if (err != ABILITY_RUNTIME_ERROR_CODE_NO_ERROR) { 249 // 记录错误日志以及其他业务处理 250 return; 251 } 252 // 销毁want,防止内存泄漏 253 OH_AbilityBase_DestroyWant(want); 254} 255``` 256 257### OH_AbilityRuntime_ApplicationContextGetTempDir 258 259``` 260AbilityRuntime_ErrorCode OH_AbilityRuntime_ApplicationContextGetTempDir(char* buffer, const int32_t bufferSize, int32_t* writeLength) 261``` 262 263**描述** 264 265获取应用级别的临时文件目录。 266 267**起始版本:** 16 268 269**参数:** 270 271| 名称 | 描述 | 272| ----------- | ------------------------------------------------------------ | 273| buffer | 缓冲区,缓存目录字符串写入该区域。 | 274| bufferSize | 缓冲区大小。 | 275| writeLength | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示实际写入到缓冲区的字符串长度。 | 276 277**返回:** 278 279ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 查询成功。 280 281ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - 入参buffer或者writeLength为空,或者缓冲区大小小于需要写入的大小。 282 283ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST - 当前环境的上下文不存在,如在应用创建的[子进程](c-apis-ability-childprocess.md)中应用级别上下文不存在。 284 285### OH_AbilityRuntime_ApplicationContextGetFilesDir 286 287``` 288AbilityRuntime_ErrorCode OH_AbilityRuntime_ApplicationContextGetFilesDir(char* buffer, const int32_t bufferSize, int32_t* writeLength) 289``` 290 291**描述** 292 293获取应用级别的通用文件目录。 294 295**起始版本:** 16 296 297**参数:** 298 299| 名称 | 描述 | 300| ----------- | ------------------------------------------------------------ | 301| buffer | 缓冲区,缓存目录字符串写入该区域。 | 302| bufferSize | 缓冲区大小。 | 303| writeLength | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示实际写入到缓冲区的字符串长度。 | 304 305**返回:** 306 307ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 查询成功。 308 309ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - 入参buffer或者writeLength为空,或者缓冲区大小小于需要写入的大小。 310 311ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST - 当前环境的上下文不存在,如在应用创建的[子进程](c-apis-ability-childprocess.md)中应用级别上下文不存在。 312 313### OH_AbilityRuntime_ApplicationContextGetDatabaseDir 314 315``` 316AbilityRuntime_ErrorCode OH_AbilityRuntime_ApplicationContextGetDatabaseDir(char* buffer, const int32_t bufferSize, int32_t* writeLength); 317``` 318 319**描述** 320 321获取应用级别的数据库文件目录。 322 323**起始版本:** 16 324 325**参数:** 326 327| 名称 | 描述 | 328| ----------- | ------------------------------------------------------------ | 329| buffer | 缓冲区,缓存目录字符串写入该区域。 | 330| bufferSize | 缓冲区大小。 | 331| writeLength | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示实际写入到缓冲区的字符串长度。 | 332 333**返回:** 334 335ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 查询成功。 336 337ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - 入参buffer或者writeLength为空,或者缓冲区大小小于需要写入的大小。 338 339ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST - 当前环境的上下文不存在,如在应用创建的[子进程](c-apis-ability-childprocess.md)中应用级别上下文不存在。 340 341### OH_AbilityRuntime_ApplicationContextGetPreferencesDir 342 343``` 344AbilityRuntime_ErrorCode OH_AbilityRuntime_ApplicationContextGetPreferencesDir(char* buffer, const int32_t bufferSize, int32_t* writeLength) 345``` 346 347**描述** 348 349获取应用级别的首选项文件目录。 350 351**起始版本:** 16 352 353**参数:** 354 355| 名称 | 描述 | 356| ----------- | ------------------------------------------------------------ | 357| buffer | 缓冲区,缓存目录字符串写入该区域。 | 358| bufferSize | 缓冲区大小。 | 359| writeLength | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示实际写入到缓冲区的字符串长度。 | 360 361**返回:** 362 363ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 查询成功。 364 365ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - 入参buffer或者writeLength为空,或者缓冲区大小小于需要写入的大小。 366 367ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST - 当前环境的上下文不存在,如在应用创建的[子进程](c-apis-ability-childprocess.md)中应用级别上下文不存在。 368 369### OH_AbilityRuntime_ApplicationContextGetBundleCodeDir 370 371``` 372AbilityRuntime_ErrorCode OH_AbilityRuntime_ApplicationContextGetBundleCodeDir(char* buffer, const int32_t bufferSize, int32_t* writeLength) 373``` 374 375**描述** 376 377获取应用级别的安装文件目录。 378 379**起始版本:** 16 380 381**参数:** 382 383| 名称 | 描述 | 384| ----------- | ------------------------------------------------------------ | 385| buffer | 缓冲区,缓存目录字符串写入该区域。 | 386| bufferSize | 缓冲区大小。 | 387| writeLength | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示实际写入到缓冲区的字符串长度。 | 388 389**返回:** 390 391ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 查询成功。 392 393ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - 入参buffer或者writeLength为空,或者缓冲区大小小于需要写入的大小。 394 395ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST - 当前环境的上下文不存在,如在应用创建的[子进程](c-apis-ability-childprocess.md)中应用级别上下文不存在。 396 397### OH_AbilityRuntime_ApplicationContextGetDistributedFilesDir 398 399``` 400AbilityRuntime_ErrorCode OH_AbilityRuntime_ApplicationContextGetDistributedFilesDir(char* buffer, const int32_t bufferSize, int32_t* writeLength) 401``` 402 403**描述** 404 405获取应用级别的分布式文件目录。 406 407**起始版本:** 16 408 409**参数:** 410 411| 名称 | 描述 | 412| ----------- | ------------------------------------------------------------ | 413| buffer | 缓冲区,缓存目录字符串写入该区域。 | 414| bufferSize | 缓冲区大小。 | 415| writeLength | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示实际写入到缓冲区的字符串长度。 | 416 417**返回:** 418 419ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 查询成功。 420 421ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - 入参buffer或者writeLength为空,或者缓冲区大小小于需要写入的大小。 422 423ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST - 当前环境的上下文不存在,如在应用创建的[子进程](c-apis-ability-childprocess.md)中应用级别上下文不存在。 424 425### OH_AbilityRuntime_ApplicationContextGetCloudFileDir 426 427``` 428AbilityRuntime_ErrorCode OH_AbilityRuntime_ApplicationContextGetCloudFileDir(char* buffer, const int32_t bufferSize, int32_t* writeLength) 429``` 430 431**描述** 432 433获取应用级别的云文件目录。 434 435**起始版本:** 16 436 437**参数:** 438 439| 名称 | 描述 | 440| ----------- | ------------------------------------------------------------ | 441| buffer | 缓冲区,缓存目录字符串写入该区域。 | 442| bufferSize | 缓冲区大小。 | 443| writeLength | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示实际写入到缓冲区的字符串长度。 | 444 445**返回:** 446 447ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 查询成功。 448 449ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - 入参buffer或者writeLength为空,或者缓冲区大小小于需要写入的大小。 450 451ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST - 当前环境的上下文不存在,如在应用创建的[子进程](c-apis-ability-childprocess.md)中应用级别上下文不存在。