• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# oh_preferences.h
2<!--Kit: ArkData-->
3<!--Subsystem: DistributedDataManager-->
4<!--Owner: @yanhuii-->
5<!--Designer: @houpengtao1-->
6<!--Tester: @yippo; @logic42-->
7<!--Adviser: @ge-yafang-->
8
9## 概述
10
11提供访问Preferences对象的接口与数据结构。
12
13**引用文件:** <database/preferences/oh_preferences.h>
14
15**库:** libohpreferences.so
16
17**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
18
19**起始版本:** 13
20
21**相关模块:** [Preferences](capi-preferences.md)
22
23## 汇总
24
25### 结构体
26
27| 名称                                     | typedef关键字  | 描述                      |
28| ---------------------------------------- | -------------- | ------------------------- |
29| [OH_Preferences](capi-preferences-oh-preferences.md) | OH_Preferences | 定义Preferences对象类型。 |
30
31### 函数
32
33| 名称                                                         | typedef关键字              | 描述                                                         |
34| ------------------------------------------------------------ | -------------------------- | ------------------------------------------------------------ |
35| [typedef void (\*OH_PreferencesDataObserver)(void *context, const OH_PreferencesPair *pairs, uint32_t count)](#oh_preferencesdataobserver) | OH_PreferencesDataObserver | 定义数据变更触发的回调函数类型。                             |
36| [OH_Preferences *OH_Preferences_Open(OH_PreferencesOption *option, int *errCode)](#oh_preferences_open) | -                          | 打开一个Preferences实例对象并创建指向它的指针。<br>当不再需要使用指针时,请使用[OH_Preferences_Close](capi-oh-preferences-h.md#oh_preferences_close)关闭实例对象。 |
37| [int OH_Preferences_Close(OH_Preferences *preference)](#oh_preferences_close) | -                          | 关闭一个Preferences实例对象。                                |
38| [int OH_Preferences_GetInt(OH_Preferences *preference, const char *key, int *value)](#oh_preferences_getint) | -                          | 获取Preferences实例对象中Key对应的整型值。                   |
39| [int OH_Preferences_GetBool(OH_Preferences *preference, const char *key, bool *value)](#oh_preferences_getbool) | -                          | 获取Preferences实例对象中Key对应的布尔值。                   |
40| [int OH_Preferences_GetString(OH_Preferences *preference, const char *key, char **value, uint32_t *valueLen)](#oh_preferences_getstring) | -                          | 获取Preferences实例对象中Key对应的字符串。                   |
41| [void OH_Preferences_FreeString(char *string)](#oh_preferences_freestring) | -                          | 释放从Preferences实例对象中获取的字符串。                    |
42| [int OH_Preferences_SetInt(OH_Preferences *preference, const char *key, int value)](#oh_preferences_setint) | -                          | 根据Key设置Preferences实例对象中的整型值。                   |
43| [int OH_Preferences_SetBool(OH_Preferences *preference, const char *key, bool value)](#oh_preferences_setbool) | -                          | 根据Key设置Preferences实例对象中的布尔值。                   |
44| [int OH_Preferences_SetString(OH_Preferences *preference, const char *key, const char *value)](#oh_preferences_setstring) | -                          | 根据Key设置Preferences实例对象中的字符串。                   |
45| [int OH_Preferences_Delete(OH_Preferences *preference, const char *key)](#oh_preferences_delete) | -                          | 在Preferences实例对象中删除Key对应的KV数据。                 |
46| [int OH_Preferences_RegisterDataObserver(OH_Preferences *preference, void *context,OH_PreferencesDataObserver observer, const char *keys[], uint32_t keyCount)](#oh_preferences_registerdataobserver) | -                          | 对选取的Key注册数据变更订阅。订阅的Key的值发生变更后,在调用OH_Preferences_Close()后触发回调。 |
47| [int OH_Preferences_UnregisterDataObserver(OH_Preferences *preference, void *context,OH_PreferencesDataObserver observer, const char *keys[], uint32_t keyCount)](#oh_preferences_unregisterdataobserver) | -                          | 取消注册选取Key的数据变更订阅。                              |
48| [int OH_Preferences_IsStorageTypeSupported(Preferences_StorageType type, bool *isSupported)](#oh_preferences_isstoragetypesupported) | -                          | 校验当前平台是否支持对应存储模式。                           |
49
50## 函数说明
51
52### OH_PreferencesDataObserver()
53
54```
55typedef void (*OH_PreferencesDataObserver)(void *context, const OH_PreferencesPair *pairs, uint32_t count)
56```
57
58**描述**
59
60定义数据变更触发的回调函数类型。
61
62**起始版本:** 13
63
64
65**参数:**
66
67| 参数项                                                       | 描述                     |
68| ------------------------------------------------------------ | ------------------------ |
69| void *context                                                | 应用上下文的指针。       |
70| const [OH_PreferencesPair](capi-preferences-oh-preferencespair.md) *pairs | 发生变更的KV数据的指针。 |
71| uint32_t count                                               | 发生变更的KV数据的数量。 |
72
73### OH_Preferences_Open()
74
75```
76OH_Preferences *OH_Preferences_Open(OH_PreferencesOption *option, int *errCode)
77```
78
79**描述**
80
81打开一个Preferences实例对象并创建指向它的指针。<br>当不再需要使用指针时,请使用[OH_Preferences_Close](capi-oh-preferences-h.md#oh_preferences_close)关闭实例对象。
82
83**起始版本:** 13
84
85
86**参数:**
87
88| 参数项                                                       | 描述                                                         |
89| ------------------------------------------------------------ | ------------------------------------------------------------ |
90| [OH_PreferencesOption](capi-preferences-oh-preferencesoption.md) *option | 指向Preferences配置选项[OH_PreferencesOption](capi-preferences-oh-preferencesoption.md)的指针。 |
91| int *errCode                                                 | 该参数作为出参使用,表示指向返回错误码的指针,详见[OH_Preferences_ErrCode](capi-oh-preferences-err-code-h.md#oh_preferences_errcode)。<br>若错误码为PREFERENCES_OK,表示操作成功。<br>若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。<br>若错误码为PREFERENCES_ERROR_NOT_SUPPORTED,表示系统能力不支持。<br>若错误码为PREFERENCES_ERROR_DELETE_FILE,表示删除文件失败。<br>若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。<br>若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 |
92
93**返回:**
94
95| 类型                                     | 说明                                                         |
96| ---------------------------------------- | ------------------------------------------------------------ |
97| [OH_Preferences](capi-preferences-oh-preferences.md) | 当操作成功时,返回指向打开的Preferences对象[OH_Preferences](capi-preferences-oh-preferences.md)实例对象的指针,失败返回空指针。 |
98
99### OH_Preferences_Close()
100
101```
102int OH_Preferences_Close(OH_Preferences *preference)
103```
104
105**描述**
106
107关闭一个Preferences实例对象。
108
109**起始版本:** 13
110
111
112**参数:**
113
114| 参数项                                               | 描述                                                         |
115| ---------------------------------------------------- | ------------------------------------------------------------ |
116| [OH_Preferences](capi-preferences-oh-preferences.md) *preference | 指向需要关闭的Preferences[OH_Preferences](capi-preferences-oh-preferences.md)实例对象的指针。 |
117
118**返回:**
119
120| 类型 | 说明                                                         |
121| ---- | ------------------------------------------------------------ |
122| int  | 返回执行的错误码,详见[OH_Preferences_ErrCode](capi-oh-preferences-err-code-h.md#oh_preferences_errcode)。<br>若错误码为PREFERENCES_OK,表示操作成功。<br>若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。<br>若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。<br>若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 |
123
124### OH_Preferences_GetInt()
125
126```
127int OH_Preferences_GetInt(OH_Preferences *preference, const char *key, int *value)
128```
129
130**描述**
131
132获取Preferences实例对象中Key对应的整型值。
133
134**起始版本:** 13
135
136
137**参数:**
138
139| 参数项                                               | 描述                                                         |
140| ---------------------------------------------------- | ------------------------------------------------------------ |
141| [OH_Preferences](capi-preferences-oh-preferences.md) *preference | 指向目标Preferences[OH_Preferences](capi-preferences-oh-preferences.md)实例对象的指针。 |
142| const char *key                                      | 需要获取的Key的指针。                                        |
143| int *value                                           | 该参数作为出参使用,表示指向获取到的整型值的指针。           |
144
145**返回:**
146
147| 类型 | 说明                                                         |
148| ---- | ------------------------------------------------------------ |
149| int  | 返回执行的错误码。<br>若错误码为PREFERENCES_OK,表示操作成功。<br>若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。<br>若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。<br>若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。<br>若错误码为PREFERENCES_ERROR_KEY_NOT_FOUND,表示查询的Key不存在。 |
150
151### OH_Preferences_GetBool()
152
153```
154int OH_Preferences_GetBool(OH_Preferences *preference, const char *key, bool *value)
155```
156
157**描述**
158
159获取Preferences实例对象中Key对应的布尔值。
160
161**起始版本:** 13
162
163
164**参数:**
165
166| 参数项                                               | 描述                                                         |
167| ---------------------------------------------------- | ------------------------------------------------------------ |
168| [OH_Preferences](capi-preferences-oh-preferences.md) *preference | 指向目标Preferences[OH_Preferences](capi-preferences-oh-preferences.md)实例对象的指针。 |
169| const char *key                                      | 需要获取的Key的指针。                                        |
170| bool *value                                          | 该参数作为出参使用,表示指向获取到的布尔值的指针。           |
171
172**返回:**
173
174| 类型 | 说明                                                         |
175| ---- | ------------------------------------------------------------ |
176| int  | 返回执行的错误码。<br>若错误码为PREFERENCES_OK,表示操作成功。<br>若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。<br>若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。<br>若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。<br>若错误码为PREFERENCES_ERROR_KEY_NOT_FOUND,表示查询的key不存在。 |
177
178### OH_Preferences_GetString()
179
180```
181int OH_Preferences_GetString(OH_Preferences *preference, const char *key, char **value, uint32_t *valueLen)
182```
183
184**描述**
185
186获取Preferences实例对象中Key对应的字符串。
187
188**起始版本:** 13
189
190
191**参数:**
192
193| 参数项                                               | 描述                                                         |
194| ---------------------------------------------------- | ------------------------------------------------------------ |
195| [OH_Preferences](capi-preferences-oh-preferences.md) *preference | 指向目标Preferences[OH_Preferences](capi-preferences-oh-preferences.md)实例对象的指针。 |
196| const char *key                                      | 需要获取的Key的指针。                                        |
197| char **value                                         | 该参数作为出参使用,表示指向获取到的字符串的二级指针,使用完毕后需要调用释放函数[OH_Preferences_FreeString](capi-oh-preferences-h.md#oh_preferences_freestring)释放内存。 |
198| uint32_t *valueLen                                   | 该参数作为出参使用,表示获取到的字符串长度的指针。           |
199
200**返回:**
201
202| 类型 | 说明                                                         |
203| ---- | ------------------------------------------------------------ |
204| int  | 返回执行的错误码。<br>若错误码为PREFERENCES_OK,表示操作成功。<br>若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。<br>若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。<br>若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。<br>若错误码为PREFERENCES_ERROR_KEY_NOT_FOUND,表示查询的Key不存在。 |
205
206### OH_Preferences_FreeString()
207
208```
209void OH_Preferences_FreeString(char *string)
210```
211
212**描述**
213
214释放从Preferences实例对象中获取的字符串。
215
216**起始版本:** 13
217
218
219**参数:**
220
221| 参数项       | 描述                   |
222| ------------ | ---------------------- |
223| char *string | 需要释放的字符串指针。 |
224
225### OH_Preferences_SetInt()
226
227```
228int OH_Preferences_SetInt(OH_Preferences *preference, const char *key, int value)
229```
230
231**描述**
232
233根据Key设置Preferences实例对象中的整型值。
234
235**起始版本:** 13
236
237
238**参数:**
239
240| 参数项                                               | 描述                                                         |
241| ---------------------------------------------------- | ------------------------------------------------------------ |
242| [OH_Preferences](capi-preferences-oh-preferences.md) *preference | 指向目标Preferences[OH_Preferences](capi-preferences-oh-preferences.md)实例对象的指针。 |
243| const char *key                                      | 指向需要设置的Key的指针。                                    |
244| int value                                            | 需要设置的整型值。                                           |
245
246**返回:**
247
248| 类型 | 说明                                                         |
249| ---- | ------------------------------------------------------------ |
250| int  | 返回执行的错误码。<br>若错误码为PREFERENCES_OK,表示操作成功。<br>若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。<br>若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。<br>若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 |
251
252### OH_Preferences_SetBool()
253
254```
255int OH_Preferences_SetBool(OH_Preferences *preference, const char *key, bool value)
256```
257
258**描述**
259
260根据Key设置Preferences实例对象中的布尔值。
261
262**起始版本:** 13
263
264
265**参数:**
266
267| 参数项                                               | 描述                                                         |
268| ---------------------------------------------------- | ------------------------------------------------------------ |
269| [OH_Preferences](capi-preferences-oh-preferences.md) *preference | 指向目标Preferences[OH_Preferences](capi-preferences-oh-preferences.md)实例对象的指针。 |
270| const char *key                                      | 指向需要设置的Key的指针。                                    |
271| bool value                                           | 需要设置的布尔值。                                           |
272
273**返回:**
274
275| 类型 | 说明                                                         |
276| ---- | ------------------------------------------------------------ |
277| int  | 返回执行的错误码。<br>若错误码为PREFERENCES_OK,表示操作成功。<br>若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。<br>若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。<br>若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 |
278
279### OH_Preferences_SetString()
280
281```
282int OH_Preferences_SetString(OH_Preferences *preference, const char *key, const char *value)
283```
284
285**描述**
286
287根据Key设置Preferences实例对象中的字符串。
288
289**起始版本:** 13
290
291
292**参数:**
293
294| 参数项                                               | 描述                                                         |
295| ---------------------------------------------------- | ------------------------------------------------------------ |
296| [OH_Preferences](capi-preferences-oh-preferences.md) *preference | 指向目标Preferences[OH_Preferences](capi-preferences-oh-preferences.md)实例对象的指针。 |
297| const char *key                                      | 指向需要设置的Key的指针。                                    |
298| const char *value                                    | 指向需要设置的字符串指针。                                   |
299
300**返回:**
301
302| 类型 | 说明                                                         |
303| ---- | ------------------------------------------------------------ |
304| int  | 返回执行的错误码。<br>若错误码为PREFERENCES_OK,表示操作成功。<br>若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。<br>若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。<br>若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 |
305
306### OH_Preferences_Delete()
307
308```
309int OH_Preferences_Delete(OH_Preferences *preference, const char *key)
310```
311
312**描述**
313
314在Preferences实例对象中删除Key对应的KV数据。
315
316**起始版本:** 13
317
318
319**参数:**
320
321| 参数项                                               | 描述                                                         |
322| ---------------------------------------------------- | ------------------------------------------------------------ |
323| [OH_Preferences](capi-preferences-oh-preferences.md) *preference | 指向目标Preferences[OH_Preferences](capi-preferences-oh-preferences.md)实例对象的指针。 |
324| const char *key                                      | 指向需要删除的Key的指针。                                    |
325
326**返回:**
327
328| 类型 | 说明                                                         |
329| ---- | ------------------------------------------------------------ |
330| int  | 返回执行的错误码。<br>若错误码为PREFERENCES_OK,表示操作成功。<br>若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。<br>若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。<br>若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 |
331
332**参考:**
333
334OH_Preferences_ErrCode
335
336### OH_Preferences_RegisterDataObserver()
337
338```
339int OH_Preferences_RegisterDataObserver(OH_Preferences *preference, void *context,OH_PreferencesDataObserver observer, const char *keys[], uint32_t keyCount)
340```
341
342**描述**
343
344对选取的Key注册数据变更订阅。订阅的Key的值发生变更后,在调用OH_Preferences_Close()后触发回调。
345
346**起始版本:** 13
347
348
349**参数:**
350
351| 参数项                                                       | 描述                                                         |
352| ------------------------------------------------------------ | ------------------------------------------------------------ |
353| [OH_Preferences](capi-preferences-oh-preferences.md) *preference         | 指向目标Preferences[OH_Preferences](capi-preferences-oh-preferences.md)实例对象的指针。 |
354| void *context                                                | 应用上下文的指针。                                           |
355| [OH_PreferencesDataObserver](#oh_preferencesdataobserver) observer | 订阅数据变更关联的回调函数[OH_PreferencesDataObserver](capi-oh-preferences-h.md#oh_preferencesdataobserver)。 |
356| const char *keys[]                                           | 需要订阅的Key数组。                                          |
357| uint32_t keyCount                                            | 需要订阅的Key的数量。                                        |
358
359**返回:**
360
361| 类型 | 说明                                                         |
362| ---- | ------------------------------------------------------------ |
363| int  | 返回执行的错误码。<br>若错误码为PREFERENCES_OK,表示操作成功。<br>若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。<br>若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。<br>若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。<br>若错误码为PREFERENCES_ERROR_GET_DATAOBSMGRCLIENT,表示获取数据变更订阅服务失败。 |
364
365### OH_Preferences_UnregisterDataObserver()
366
367```
368int OH_Preferences_UnregisterDataObserver(OH_Preferences *preference, void *context,OH_PreferencesDataObserver observer, const char *keys[], uint32_t keyCount)
369```
370
371**描述**
372
373取消注册选取Key的数据变更订阅。
374
375**起始版本:** 13
376
377
378**参数:**
379
380| 参数项                                                       | 描述                                                         |
381| ------------------------------------------------------------ | ------------------------------------------------------------ |
382| [OH_Preferences](capi-preferences-oh-preferences.md) *preference         | 指向目标Preferences[OH_Preferences](capi-preferences-oh-preferences.md)实例对象的指针。 |
383| void *context                                                | 应用上下文的指针。                                           |
384| [OH_PreferencesDataObserver](#oh_preferencesdataobserver) observer | 订阅数据变更关联的回调函数[OH_PreferencesDataObserver](capi-oh-preferences-h.md#oh_preferencesdataobserver)。 |
385| const char *keys[]                                           | 需要取消订阅的Key数组。                                      |
386| uint32_t keyCount                                            | 需要取消订阅的Key的数量。                                    |
387
388**返回:**
389
390| 类型 | 说明                                                         |
391| ---- | ------------------------------------------------------------ |
392| int  | 返回执行的错误码。<br>若错误码为PREFERENCES_OK,表示操作成功。<br>若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。<br>若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。<br>若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 |
393
394**参考:**
395
396OH_Preferences_ErrCode
397
398### OH_Preferences_IsStorageTypeSupported()
399
400```
401int OH_Preferences_IsStorageTypeSupported(Preferences_StorageType type, bool *isSupported)
402```
403
404
405**起始版本:** 18
406
407
408**参数:**
409
410| 参数项                                                       | 描述                                                         |
411| ------------------------------------------------------------ | ------------------------------------------------------------ |
412| [Preferences_StorageType](capi-oh-preferences-option-h.md#preferences_storagetype) type | 要校验是否支持的存储模式。                                   |
413| bool *isSupported                                            | 校验结果的指针,作为出参使用。true表示当前平台支持当前校验的存储模式,false表示当前平台不支持当前校验的存储模式。 |
414
415**返回:**
416
417| 类型 | 说明                                                         |
418| ---- | ------------------------------------------------------------ |
419| int  | 返回接口操作执行的状态码。<br>PREFERENCES_OK,表示操作成功。<br>PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 |
420
421