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_PARAM_INVALID = 401,<br>    ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST = 16000011,<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
39## 枚举类型说明
40
41### AbilityRuntime_ErrorCode
42
43```
44enum AbilityRuntime_ErrorCode
45```
46
47**描述**
48
49定义元能力模块错误码。
50
51**起始版本**:13
52
53| 枚举值                                        | 描述           |
54| --------------------------------------------- | -------------- |
55| ABILITY_RUNTIME_ERROR_CODE_NO_ERROR           | 操作成功。     |
56| ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID ARAM | 无效参数。     |
57| ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST  | 上下文不存在。 |
58
59### AbilityRuntime_AreaMode
60
61```
62enum AbilityRuntime_AreaMode
63```
64
65**描述**
66
67定义数据加密等级。
68
69**起始版本**:13
70
71| 枚举值                        | 描述                                                         |
72| ----------------------------- | ------------------------------------------------------------ |
73| ABILITY_RUNTIME_AREA_MODE_EL1 | 对于私有文件,如闹铃、壁纸等,应用可以将这些文件放到设备级加密分区(EL1)中,以保证在用户输入密码前就可以被访问。 |
74| ABILITY_RUNTIME_AREA_MODE_EL2 | 对于更敏感的文件,如个人隐私信息等,应用可以将这些文件放到更高级别的加密分区(EL2)中,以保证更高的安全性。 |
75| ABILITY_RUNTIME_AREA_MODE_EL3 | 对于应用中的记录步数、文件下载、音乐播放,需要在锁屏时读写和创建新文件,放在(EL3)的加密分区比较合适。 |
76| ABILITY_RUNTIME_AREA_MODE_EL4 | 对于用户安全信息相关的文件,锁屏时不需要读写文件、也不能创建文件,放在(EL4)的加密分区更合适。 |
77| ABILITY_RUNTIME_AREA_MODE_EL5 | 对于用户隐私敏感数据文件,锁屏后默认不可读写,如果锁屏后需要读写文件,则锁屏前可以调用[Access](js-apis-screenLockFileManager.md#screenlockfilemanageracquireaccess)接口申请继续读写文件,或者锁屏后也需要创建新文件且可读写,放在(EL5)的应用级加密分区更合适。 |
78
79## 函数说明
80
81
82### OH_AbilityRuntime_ApplicationContextGetCacheDir
83
84```
85AbilityRuntime_ErrorCode OH_AbilityRuntime_ApplicationContextGetCacheDir(char* buffer, int32_t bufferSize, int32_t* writeLength)
86```
87**描述**
88
89获取应用级别的缓存目录。
90
91**起始版本**:13
92
93**参数:**
94
95| 名称 | 描述 |
96| -------- | -------- |
97| buffer | 缓冲区,缓存目录字符串写入该区域。 |
98| bufferSize | 缓冲区大小。 |
99| writeLength | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示实际写入到缓冲区的字符串长度。 |
100
101**返回:**
102
103ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 查询成功。
104
105ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - 入参buffer或者writeLength为空,或者缓冲区大小小于需要写入的大小。
106
107ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST  - 当前环境的上下文不存在,如在应用创建的[子进程](c-apis-ability-childprocess.md)中应用级别上下文不存在。
108
109### OH_AbilityRuntime_ApplicationContextGetAreaMode
110
111```
112AbilityRuntime_ErrorCode OH_AbilityRuntime_ApplicationContextGetAreaMode(AbilityRuntime_AreaMode* areaMode)
113```
114
115**描述**
116
117获取应用级别的数据加密等级。
118
119**起始版本**:13
120
121**参数:**
122
123| 名称     | 描述                     |
124| -------- | ------------------------ |
125| areaMode | 用于接受加密等级的指针。 |
126
127**返回:**
128
129ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 查询成功。
130
131ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - 入参areaMode为空。
132
133ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST  - 当前环境的上下文不存在,如在应用创建的[子进程](c-apis-ability-childprocess.md)中应用级别上下文不存在。
134
135### OH_AbilityRuntime_ApplicationContextGetBundleName
136
137```
138AbilityRuntime_ErrorCode OH_AbilityRuntime_ApplicationContextGetBundleName(char* buffer, int32_t bufferSize, int32_t* writeLength)
139```
140
141**描述**
142
143获取应用包名。
144
145**起始版本**:13
146
147**参数:**
148
149| 名称        | 描述                                                         |
150| ----------- | ------------------------------------------------------------ |
151| buffer      | 缓冲区,应用包名字符串写入该区域。                           |
152| bufferSize  | 缓冲区大小。                                                 |
153| writeLength | 在返回ABILITY_RUNTIME_ERROR_CODE_NO_ERROR时,表示实际写入到缓冲区的字符串长度。 |
154
155**返回:**
156
157ABILITY_RUNTIME_ERROR_CODE_NO_ERROR - 查询成功。
158
159ABILITY_RUNTIME_ERROR_CODE_PARAM_INVALID - 入参buffer或者writeLength为空,或者缓冲区大小小于需要写入的大小。
160
161ABILITY_RUNTIME_ERROR_CODE_CONTEXT_NOT_EXIST  - 当前环境的上下文不存在,如在应用创建的[子进程](c-apis-ability-childprocess.md)中应用级别上下文不存在。
162