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