1 2# 全球化子系统变更说明 3 4## cl.global.1 资源匹配逻辑变更 5 6**访问级别** 7 8公开接口 9 10**变更原因** 11 12插入SIM卡时未能获取到正确的mcc目录资源,影响开发者差异化定制资源。 13 14**变更影响** 15 16该变更为不兼容变更。 17 18变更前:应用配置了mcc目录等差异化资源,插sim卡显示的是默认语言目录下资源,未插sim卡显示的是mcc目录下资源。 19 20如:插卡时会显示“Wi-Fi”字串,不插卡时会显示“WLAN”字串。 21 22变更后:插sim卡显示的是mcc目录下资源,未插sim卡显示的是默认语言目录下资源。 23 24如:插卡时会显示“WLAN”字串,不插卡时会显示“Wi-Fi”字串。 25 26**起始API Level** 27 28API 9 29 30**变更发生版本** 31 32从OpenHarmony SDK 5.0.0.33开始。 33 34**变更的接口/组件** 35 36SystemCapability.Global.ResourceManager获取资源相关接口。 37相关接口查看[接口文档](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-localization-kit/js-apis-resource-manager.md) 38 39**适配指导** 40 41变更前开发者如果有在默认语言目录配置“WLAN”字串,mcc目录配置“Wi-Fi”字串,变更后需要适配将“WLAN”字串配置在mcc目录,“Wi-Fi”字串配置在默认语言目录。 42 43## cl.LocalizationKit.2 raw_file模块头文件变更 44 45**访问级别** 46 47公开接口 48 49**变更原因** 50 51raw_file模块引用了string头文件,string头文件是C++标准库文件,导致raw_file模块在C语言环境下无法使用。 52 53**变更影响** 54 55该变更为不兼容变更 56 57变更前: 58 59C++编译环境下开发者使用了raw_file.h头文件,但开发者没有引用string头文件,调用了"std::string"等string库函数,可以编译成功。 60 61```cpp 62#include <rawfile/raw_file_manager.h> 63#include <rawfile/raw_file.h> 64 65static napi_value GetRawFileContent(napi_env env, napi_callback_info info) { 66 size_t argc = 2; 67 napi_value argv[2] = {NULL}; 68 napi_get_cb_info(env, info, &argc, argv, NULL, NULL); 69 napi_valuetype valueType; 70 napi_typeof(env, argv[0], &valueType); 71 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]); 72 size_t strSize; 73 char strBuf[256]; 74 napi_get_value_string_utf8(env, argv[1], strBuf, sizeof(strBuf), &strSize); 75 std::string filename(strBuf, strSize); // 编译通过 76 RawFile *rawFile = OH_ResourceManager_OpenRawFile(mNativeResMgr, filename.c_str()); 77} 78``` 79 80变更后: 81 82C++编译环境下开发者使用了raw_file.h头文件,但开发者没有引用string头文件,调用了"std::string"等string库函数,会编译失败。 83 84```cpp 85#include <rawfile/raw_file_manager.h> 86#include <rawfile/raw_file.h> 87 88static napi_value GetRawFileContent(napi_env env, napi_callback_info info) { 89 size_t argc = 2; 90 napi_value argv[2] = {NULL}; 91 napi_get_cb_info(env, info, &argc, argv, NULL, NULL); 92 napi_valuetype valueType; 93 napi_typeof(env, argv[0], &valueType); 94 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]); 95 size_t strSize; 96 char strBuf[256]; 97 napi_get_value_string_utf8(env, argv[1], strBuf, sizeof(strBuf), &strSize); 98 std::string filename(strBuf, strSize); // 编译失败 99 RawFile *rawFile = OH_ResourceManager_OpenRawFile(mNativeResMgr, filename.c_str()); 100} 101``` 102 103**起始API Level** 104 105API 8 106 107**变更发生的版本** 108 109从OpenHarmony SDK 5.0.0.33开始。 110 111**变更的接口/组件** 112 113| 变更前 | 变更后 | 114|----------------------------|--------------------------------------------------------------| 115| `#include <string>`| #include <stddef.h><br>#include <stdint.h><br>#include <stdbool.h> | 116 117**适配指导** 118 119C++编译环境下开发者使用raw_file.h头文件,但开发者没有引用string头文件,调用了"std::string"等string库函数,需要进行适配,通过include引入string头文件即可解决。 120 121```cpp 122#include <rawfile/raw_file_manager.h> 123#include <rawfile/raw_file.h> 124#include <string> // 手动引用string头文件 125 126static napi_value GetRawFileContent(napi_env env, napi_callback_info info) { 127 size_t argc = 2; 128 napi_value argv[2] = {NULL}; 129 napi_get_cb_info(env, info, &argc, argv, NULL, NULL); 130 napi_valuetype valueType; 131 napi_typeof(env, argv[0], &valueType); 132 NativeResourceManager *mNativeResMgr = OH_ResourceManager_InitNativeResourceManager(env, argv[0]); 133 size_t strSize; 134 char strBuf[256]; 135 napi_get_value_string_utf8(env, argv[1], strBuf, sizeof(strBuf), &strSize); 136 std::string filename(strBuf, strSize); // 编译通过 137 RawFile *rawFile = OH_ResourceManager_OpenRawFile(mNativeResMgr, filename.c_str()); 138} 139``` 140 141## cl.golbal.3 raw_file模块接口废弃 142 143**访问级别** 144 145公开接口 146 147**废弃原因** 148 149接口中使用了引用参数,影响接口在C语言环境下正常使用。 150 151**废弃影响** 152 153该变更为兼容性变更 154 155变更前开发者使用了 OH_ResourceManager_GetRawFileDescriptor 和OH_ResourceManager_ReleaseRawFileDescriptor 接口,变更后则需要适配新的接口。 156 157**废弃发生的版本** 158 159从OpenHarmony SDK 5.0.0.33开始。 160 161**废弃的接口/组件** 162 163| 接口声明 | 废弃说明 | 替代接口 | 164|-----------------------------------------------------------------------------------------------------|---------|---------------------------------------------------------------------------------------------------------| 165| bool OH_ResourceManager_GetRawFileDescriptor(const RawFile \*rawFile, RawFileDescriptor &descriptor) | 使用接口获取rawfile文件描述符 | bool OH_ResourceManager_GetRawFileDescriptorData(const RawFile \*rawFile, RawFileDescriptor \*descriptor) | 166| bool OH_ResourceManager_ReleaseRawFileDescriptor(const RawFileDescriptor &descriptor) | 使用接口释放rawfile文件描述符 | bool OH_ResourceManager_ReleaseRawFileDescriptorData(const RawFileDescriptor \*descriptor) | 167 168 169**适配指导** 170 171变更后则需要适配新的接口,调用新接口 OH_ResourceManager_GetRawFileDescriptorData 获取rawfile文件描述符来读取rawfile文件内容,调用新接口 OH_ResourceManager_ReleaseRawFileDescriptorData 来释放已获取到的rawfile文件描述符。 172 173## cl.golbal.4 ohresmgr模块接口废弃 174 175**访问级别** 176 177公开接口 178 179**废弃原因** 180 181接口中使用了可选参数,影响接口在c语言环境下正常使用。 182 183**废弃影响** 184 185该变更为兼容性变更 186 187接口已废弃不推荐使用,推荐适配使用新接口。 188 189**废弃发生的版本** 190 191从OpenHarmony SDK 5.0.0.33开始。 192 193**废弃的接口/组件** 194 195| 接口声明 | 废弃说明 | 替代接口 | 196|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 197| ResourceManager_ErrorCode OH_ResourceManager_GetMediaBase64(const NativeResourceManager \*mgr, uint32_t resId, char \*\*resultValue, uint64_t \*resultLen, uint32_t density = 0) | 使用接口通过资源id获取媒体文件base64编码值 | ResourceManager_ErrorCode OH_ResourceManager_GetMediaBase64Data(const NativeResourceManager \*mgr, uint32_t resId, char \*\*resultValue, uint64_t \*resultLen, uint32_t density) | 198| ResourceManager_ErrorCode OH_ResourceManager_GetMediaBase64ByName(const NativeResourceManager \*mgr, const char \*resName, char \*\*resultValue, uint64_t \*resultLen, uint32_t density = 0) | 使用接口通过资源名称获取媒体文件base64编码值| ResourceManager_ErrorCode OH_ResourceManager_GetMediaBase64DataByName(const NativeResourceManager \*mgr, const char \*resName, char \*\*resultValue, uint64_t \*resultLen, uint32_t density) | 199| ResourceManager_ErrorCode OH_ResourceManager_GetMedia(const NativeResourceManager \*mgr, uint32_t resId, uint8_t \*\*resultValue, uint64_t \*resultLen, uint32_t density = 0) | 使用接口通过资源id获取媒体文件内容 | ResourceManager_ErrorCode OH_ResourceManager_GetMediaData(const NativeResourceManager \*mgr, uint32_t resId, uint8_t \*\*resultValue, uint64_t \*resultLen, uint32_t density) | 200| ResourceManager_ErrorCode OH_ResourceManager_GetMediaByName(const NativeResourceManager \*mgr, const char \*resName, uint8_t \*\*resultValue, uint64_t \*resultLen, uint32_t density = 0) | 使用接口通过资源名称获取媒体文件内容 | ResourceManager_ErrorCode OH_ResourceManager_GetMediaDataByName(const NativeResourceManager \*mgr, const char \*resName, uint8_t \*\*resultValue, uint64_t \*resultLen, uint32_t density) | 201| ResourceManager_ErrorCode OH_ResourceManager_GetDrawableDescriptor(const NativeResourceManager \*mgr, uint32_t resId, ArkUI_DrawableDescriptor \*\*drawableDescriptor, uint32_t density = 0, uint32_t type = 0) | 使用接口通过资源id获取图片的描述符 | ResourceManager_ErrorCode OH_ResourceManager_GetDrawableDescriptorData(const NativeResourceManager \*mgr, uint32_t resId, ArkUI_DrawableDescriptor \*\*drawableDescriptor, uint32_t density, uint32_t type) | 202| ResourceManager_ErrorCode OH_ResourceManager_GetDrawableDescriptorByName(const NativeResourceManager \*mgr, const char \*resName, ArkUI_DrawableDescriptor \*\*drawableDescriptor, uint32_t density = 0, uint32_t type = 0) | 使用接口通过资源名称获取图片的描述符 | ResourceManager_ErrorCode OH_ResourceManager_GetDrawableDescriptorDataByName(const NativeResourceManager \*mgr, const char \*resName, ArkUI_DrawableDescriptor \*\*drawableDescriptor, uint32_t density, uint32_t type) | 203| ResourceManager_ErrorCode OH_ResourceManager_GetLocales(const NativeResourceManager \*mgr, char \*\*\*resultValue, uint32_t \*resultLen, bool includeSystem = false) | 使用接口获取当前语言和地区信息 | ResourceManager_ErrorCode OH_ResourceManager_GetLocalesData(const NativeResourceManager \*mgr, char \*\*\*resultValue, uint32_t \*resultLen, bool includeSystem) | 204 205 206**适配指导** 207 208开发者需要停止使用可选参数的函数接口,在新版本开发过程中,使用新接口。 209 210ResourceManager_ErrorCode OH_ResourceManager_GetMediaBase64Data(const NativeResourceManager \*mgr, uint32_t resId, 211 char \*\*resultValue, uint64_t \*resultLen, uint32_t density); 212 213ResourceManager_ErrorCode OH_ResourceManager_GetMediaBase64DataByName(const NativeResourceManager \*mgr, 214 const char \*resName, char \*\*resultValue, uint64_t \*resultLen, uint32_t density); 215 216ResourceManager_ErrorCode OH_ResourceManager_GetMediaData(const NativeResourceManager \*mgr, uint32_t resId, 217 uint8_t \*\*resultValue, uint64_t \*resultLen, uint32_t density); 218 219ResourceManager_ErrorCode OH_ResourceManager_GetMediaDataByName(const NativeResourceManager \*mgr, const char \*resName, 220 uint8_t \*\*resultValue, uint64_t \*resultLen, uint32_t density); 221 222ResourceManager_ErrorCode OH_ResourceManager_GetDrawableDescriptorData(const NativeResourceManager \*mgr, 223 uint32_t resId, ArkUI_DrawableDescriptor \*\*drawableDescriptor, uint32_t density, uint32_t type); 224 225ResourceManager_ErrorCode OH_ResourceManager_GetDrawableDescriptorDataByName(const NativeResourceManager \*mgr, 226 const char \*resName, ArkUI_DrawableDescriptor \*\*drawableDescriptor, uint32_t density, uint32_t type); 227 228ResourceManager_ErrorCode OH_ResourceManager_GetLocalesData(const NativeResourceManager \*mgr, char \*\*\*resultValue, 229 uint32_t \*resultLen, bool includeSystem);