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);