• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)中应用级别上下文不存在。