1# Preferences
2
3
4## 概述
5
6首选项模块(Preferences)提供Key-Value键值型数据(后续简称KV数据)的处理接口,实现对轻量级KV数据的查询、修改和持久化功能。
7
8**系统能力:** SystemCapability.DistributedDataManager.Preferences.Core
9
10**起始版本:** 13
11
12
13## 汇总
14
15
16### 文件
17
18| 名称 | 描述 |
19| -------- | -------- |
20| [oh_preferences.h](oh__preferences_8h.md) | 提供访问Preferences对象的接口与数据结构。 |
21| [oh_preferences_err_code.h](oh__preferences__err__code_8h.md) | 声明首选项模块统一使用的错误码信息。  |
22| [oh_preferences_option.h](oh__preferences__option_8h.md) | 提供访问Preferences配置选项(PreferencesOption)的接口与数据结构。 |
23| [oh_preferences_value.h](oh__preferences__value_8h.md) | 提供访问Preferences值(PreferencesValue)对象的接口、枚举类型与数据结构。 |
24
25
26### 类型定义
27
28| 名称 | 描述 |
29| -------- | -------- |
30| typedef struct [OH_Preferences](#oh_preferences) [OH_Preferences](#oh_preferences) | 定义Preferences对象类型。 |
31| typedef void(\* [OH_PreferencesDataObserver](#oh_preferencesdataobserver)) (void \*context, const [OH_PreferencesPair](#oh_preferencespair) \*pairs, uint32_t count) | 定义数据变更触发的回调函数类型。 |
32| typedef enum [OH_Preferences_ErrCode](#oh_preferences_errcode) [OH_Preferences_ErrCode](#oh_preferences_errcode) | 错误码信息。 |
33| typedef struct [OH_PreferencesOption](#oh_preferencesoption) [OH_PreferencesOption](#oh_preferencesoption) | 定义Preferences配置选项的数据结构。 |
34| typedef enum [Preference_ValueType](#preference_valuetype) [Preference_ValueType](#preference_valuetype) | 定义PreferencesValue的数据类型。 |
35| typedef struct [OH_PreferencesPair](#oh_preferencespair) [OH_PreferencesPair](#oh_preferencespair) | 定义Preferences使用的KV数据对象类型。 |
36| typedef struct [OH_PreferencesValue](#oh_preferencesvalue) [OH_PreferencesValue](#oh_preferencesvalue) | 定义PreferencesValue对象类型。 |
37
38
39### 枚举
40
41| 名称 | 描述 |
42| -------- | -------- |
43| [OH_Preferences_ErrCode](#oh_preferences_errcode-1) {<br/>PREFERENCES_OK = 0, PREFERENCES_ERROR_INVALID_PARAM = 401, PREFERENCES_ERROR_NOT_SUPPORTED = 801, PREFERENCES_ERROR_BASE = 15500000,<br/>PREFERENCES_ERROR_DELETE_FILE = 15500010, PREFERENCES_ERROR_STORAGE = 15500011, PREFERENCES_ERROR_MALLOC = 15500012, PREFERENCES_ERROR_KEY_NOT_FOUND = 15500013,<br/>PREFERENCES_ERROR_GET_DATAOBSMGRCLIENT = 15500019<br/>} | 错误码信息。 |
44| [Preference_ValueType](#preference_valuetype-1) {<br/>PREFERENCE_TYPE_NULL = 0, PREFERENCE_TYPE_INT, PREFERENCE_TYPE_BOOL, PREFERENCE_TYPE_STRING,<br/>PREFERENCE_TYPE_BUTT<br/>} | 定义PreferencesValue的数据类型。 |
45
46
47### 函数
48
49| 名称 | 描述 |
50| -------- | -------- |
51| [OH_Preferences](#oh_preferences) \* [OH_Preferences_Open](#oh_preferences_open) ([OH_PreferencesOption](#oh_preferencesoption) \*option, int \*errCode) | 打开一个Preferences实例对象并创建指向它的指针。 当不再需要使用指针时,请使用[OH_Preferences_Close](#oh_preferences_close)关闭实例对象。 |
52| int [OH_Preferences_Close](#oh_preferences_close) ([OH_Preferences](#oh_preferences) \*preference) | 关闭一个Preferences实例对象。 |
53| int [OH_Preferences_GetInt](#oh_preferences_getint) ([OH_Preferences](#oh_preferences) \*preference, const char \*key, int \*value) | 获取Preferences实例对象中Key对应的整型值。 |
54| int [OH_Preferences_GetBool](#oh_preferences_getbool) ([OH_Preferences](#oh_preferences) \*preference, const char \*key, bool \*value) | 获取Preferences实例对象中Key对应的布尔值。 |
55| int [OH_Preferences_GetString](#oh_preferences_getstring) ([OH_Preferences](#oh_preferences) \*preference, const char \*key, char \*\*value, uint32_t \*valueLen) | 获取Preferences实例对象中Key对应的字符串。 |
56| void [OH_Preferences_FreeString](#oh_preferences_freestring) (char \*string) | 释放从Preferences实例对象中获取的字符串。 |
57| int [OH_Preferences_SetInt](#oh_preferences_setint) ([OH_Preferences](#oh_preferences) \*preference, const char \*key, int value) | 根据Key设置Preferences实例对象中的整型值。 |
58| int [OH_Preferences_SetBool](#oh_preferences_setbool) ([OH_Preferences](#oh_preferences) \*preference, const char \*key, bool value) | 根据Key设置Preferences实例对象中的布尔值。 |
59| int [OH_Preferences_SetString](#oh_preferences_setstring) ([OH_Preferences](#oh_preferences) \*preference, const char \*key, const char \*value) | 根据Key设置Preferences实例对象中的字符串。 |
60| int [OH_Preferences_Delete](#oh_preferences_delete) ([OH_Preferences](#oh_preferences) \*preference, const char \*key) | 在Preferences实例对象中删除Key对应的KV数据。 |
61| int [OH_Preferences_RegisterDataObserver](#oh_preferences_registerdataobserver) ([OH_Preferences](#oh_preferences) \*preference, void \*context, [OH_PreferencesDataObserver](#oh_preferencesdataobserver) observer, const char \*keys[], uint32_t keyCount) | 对选取的Key注册数据变更订阅。订阅的Key的值发生变更后,在调用OH_Preferences_Close()后触发回调。 |
62| int [OH_Preferences_UnregisterDataObserver](#oh_preferences_unregisterdataobserver) ([OH_Preferences](#oh_preferences) \*preference, void \*context, [OH_PreferencesDataObserver](#oh_preferencesdataobserver) observer, const char \*keys[], uint32_t keyCount) | 取消注册选取Key的数据变更订阅。 |
63| [OH_PreferencesOption](#oh_preferencesoption) \* [OH_PreferencesOption_Create](#oh_preferencesoption_create) (void) | 创建一个Preferences配置选项的[OH_PreferencesOption](#oh_preferencesoption)实例对象以及指向它的指针。 当不再需要使用指针时,请使用[OH_PreferencesOption_Destroy](#oh_preferencesoption_destroy)销毁实例对象,否则会导致内存泄漏。 |
64| int [OH_PreferencesOption_SetFileName](#oh_preferencesoption_setfilename) ([OH_PreferencesOption](#oh_preferencesoption) \*option, const char \*fileName) | 设置Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的文件名称。 |
65| int [OH_PreferencesOption_SetBundleName](#oh_preferencesoption_setbundlename) ([OH_PreferencesOption](#oh_preferencesoption) \*option, const char \*bundleName) | 设置Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的包名称。 |
66| int [OH_PreferencesOption_SetDataGroupId](#oh_preferencesoption_setdatagroupid) ([OH_PreferencesOption](#oh_preferencesoption) \*option, const char \*dataGroupId) | 设置Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的应用组ID。 |
67| int [OH_PreferencesOption_Destroy](#oh_preferencesoption_destroy) ([OH_PreferencesOption](#oh_preferencesoption) \*option) | 销毁Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例。 |
68| const char \* [OH_PreferencesPair_GetKey](#oh_preferencespair_getkey) (const [OH_PreferencesPair](#oh_preferencespair) \*pairs, uint32_t index) | 获取KV数据中索引对应数据的键。 |
69| const [OH_PreferencesValue](#oh_preferencesvalue) \* [OH_PreferencesPair_GetPreferencesValue](#oh_preferencespair_getpreferencesvalue) (const [OH_PreferencesPair](#oh_preferencespair) \*pairs, uint32_t index) | 获取KV数据数组中索引对应的值。 |
70| [Preference_ValueType](#preference_valuetype) [OH_PreferencesValue_GetValueType](#oh_preferencesvalue_getvaluetype) (const [OH_PreferencesValue](#oh_preferencesvalue) \*object) | 获取PreferencesValue对象的数据类型。 |
71| int [OH_PreferencesValue_GetInt](#oh_preferencesvalue_getint) (const [OH_PreferencesValue](#oh_preferencesvalue) \*object, int \*value) | 从PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)中获取一个整型值。 |
72| int [OH_PreferencesValue_GetBool](#oh_preferencesvalue_getbool) (const [OH_PreferencesValue](#oh_preferencesvalue) \*object, bool \*value) | 从PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)中获取一个布尔值。 |
73| int [OH_PreferencesValue_GetString](#oh_preferencesvalue_getstring) (const [OH_PreferencesValue](#oh_preferencesvalue) \*object, char \*\*value, uint32_t \*valueLen) | 从PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)中获取字符串。 |
74
75
76## 类型定义说明
77
78
79### OH_Preferences
80
81```
82typedef struct OH_Preferences OH_Preferences
83```
84
85**描述**
86
87定义Preferences对象类型。
88
89**起始版本:** 13
90
91
92### OH_Preferences_ErrCode
93
94```
95typedef enum OH_Preferences_ErrCode OH_Preferences_ErrCode
96```
97
98**描述**
99
100错误码信息。
101
102**起始版本:** 13
103
104
105### OH_PreferencesDataObserver
106
107```
108typedef void(*OH_PreferencesDataObserver) (void *context, const OH_PreferencesPair *pairs, uint32_t count)
109```
110
111**描述**
112
113定义数据变更触发的回调函数类型。
114
115**起始版本:** 13
116
117**参数:**
118
119| 名称 | 描述 |
120| -------- | -------- |
121| context | 应用上下文的指针。 |
122| pairs | 发生变更的KV数据的指针。 |
123| count | 发生变更的KV数据的数量。 |
124
125**参见:**
126
127[OH_PreferencesPair](#oh_preferencespair)
128
129
130### OH_PreferencesOption
131
132```
133typedef struct OH_PreferencesOption OH_PreferencesOption
134```
135
136**描述**
137
138定义Preferences配置选项的数据结构。
139
140**起始版本:** 13
141
142
143### OH_PreferencesPair
144
145```
146typedef struct OH_PreferencesPair OH_PreferencesPair
147```
148
149**描述**
150
151定义Preferences使用的KV数据对象类型。
152
153**起始版本:** 13
154
155
156### OH_PreferencesValue
157
158```
159typedef struct OH_PreferencesValue OH_PreferencesValue
160```
161
162**描述**
163
164定义PreferencesValue对象类型。
165
166**起始版本:** 13
167
168
169### Preference_ValueType
170
171```
172typedef enum Preference_ValueType Preference_ValueType
173```
174
175**描述**
176
177定义PreferencesValue的数据类型。
178
179**起始版本:** 13
180
181
182## 枚举类型说明
183
184
185### OH_Preferences_ErrCode
186
187```
188enum OH_Preferences_ErrCode
189```
190
191**描述**
192
193错误码信息。
194
195**起始版本:** 13
196
197| 枚举值 | 描述 |
198| -------- | -------- |
199| PREFERENCES_OK | 操作执行成功 |
200| PREFERENCES_ERROR_INVALID_PARAM | 参数不合法 |
201| PREFERENCES_ERROR_NOT_SUPPORTED | 系统能力不支持 |
202| PREFERENCES_ERROR_BASE | 基准错误码 |
203| PREFERENCES_ERROR_DELETE_FILE | 删除文件失败 |
204| PREFERENCES_ERROR_STORAGE | 存储异常 |
205| PREFERENCES_ERROR_MALLOC | 申请内存失败 |
206| PREFERENCES_ERROR_KEY_NOT_FOUND | Key不存在 |
207| PREFERENCES_ERROR_GET_DATAOBSMGRCLIENT | 获取数据变更订阅服务失败 |
208
209
210### Preference_ValueType
211
212```
213enum Preference_ValueType
214```
215
216**描述**
217
218定义PreferencesValue的数据类型。
219
220**起始版本:** 13
221
222| 枚举值 | 描述 |
223| -------- | -------- |
224| PREFERENCE_TYPE_NULL | 空类型 |
225| PREFERENCE_TYPE_INT | 整型类型 |
226| PREFERENCE_TYPE_BOOL | 布尔类型 |
227| PREFERENCE_TYPE_STRING | 字符串类型 |
228| PREFERENCE_TYPE_BUTT | 结束类型 |
229
230
231## 函数说明
232
233
234### OH_Preferences_Close()
235
236```
237int OH_Preferences_Close (OH_Preferences *preference)
238```
239
240**描述**
241
242关闭一个Preferences实例对象。
243
244**起始版本:** 13
245
246**参数:**
247
248| 名称 | 描述 |
249| -------- | -------- |
250| preference | 指向需要关闭的[OH_Preferences](#oh_preferences)实例对象的指针。 |
251
252**返回:**
253
254返回执行的错误码,详见[OH_Preferences_ErrCode](#oh_preferences_errcode)。
255
256若错误码为PREFERENCES_OK,表示操作成功。
257
258若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
259
260若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。
261
262若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。
263
264**参见:**
265
266[OH_Preferences](#oh_preferences)
267
268[OH_Preferences_ErrCode](#oh_preferences_errcode)
269
270
271### OH_Preferences_Delete()
272
273```
274int OH_Preferences_Delete (OH_Preferences *preference, const char *key )
275```
276
277**描述**
278
279在Preferences实例对象中删除Key对应的KV数据。
280
281**起始版本:** 13
282
283**参数:**
284
285| 名称 | 描述 |
286| -------- | -------- |
287| preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 |
288| key | 指向需要删除的Key的指针。 |
289
290**返回:**
291
292返回执行的错误码。
293
294若错误码为PREFERENCES_OK,表示操作成功。
295
296若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
297
298若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。
299
300若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。
301
302**参见:**
303
304[OH_Preferences](#oh_preferences)
305
306[OH_Preferences_ErrCode](#oh_preferences_errcode)
307
308
309### OH_Preferences_FreeString()
310
311```
312void OH_Preferences_FreeString (char *string)
313```
314
315**描述**
316
317释放从Preferences实例对象中获取的字符串。
318
319**起始版本:** 13
320
321**参数:**
322
323| 名称 | 描述 |
324| -------- | -------- |
325| string | 需要释放的字符串指针。 |
326
327**参见:**
328
329[OH_Preferences](#oh_preferences)
330
331
332### OH_Preferences_GetBool()
333
334```
335int OH_Preferences_GetBool (OH_Preferences *preference, const char *key, bool *value )
336```
337
338**描述**
339
340获取Preferences实例对象中Key对应的布尔值。
341
342**起始版本:** 13
343
344**参数:**
345
346| 名称 | 描述 |
347| -------- | -------- |
348| preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 |
349| key | 需要获取的Key的指针。 |
350| value | 该参数作为出参使用,表示指向获取到的布尔值的指针。 |
351
352**返回:**
353
354返回执行的错误码。
355
356若错误码为PREFERENCES_OK,表示操作成功。
357
358若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
359
360若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。
361
362若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。
363
364若错误码为PREFERENCES_ERROR_KEY_NOT_FOUND,表示查询的key不存在。
365
366**参见:**
367
368[OH_Preferences](#oh_preferences)
369
370[OH_Preferences_ErrCode](#oh_preferences_errcode)
371
372
373### OH_Preferences_GetInt()
374
375```
376int OH_Preferences_GetInt (OH_Preferences *preference, const char *key, int *value )
377```
378
379**描述**
380
381获取Preferences实例对象中Key对应的整型值。
382
383**起始版本:** 13
384
385**参数:**
386
387| 名称 | 描述 |
388| -------- | -------- |
389| preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 |
390| key | 需要获取的Key的指针。 |
391| value | 该参数作为出参使用,表示指向获取到的整型值的指针。 |
392
393**返回:**
394
395返回执行的错误码。
396
397若错误码为PREFERENCES_OK,表示操作成功。
398
399若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
400
401若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。
402
403若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。
404
405若错误码为PREFERENCES_ERROR_KEY_NOT_FOUND,表示查询的Key不存在。
406
407**参见:**
408
409[OH_Preferences](#oh_preferences)
410
411[OH_Preferences_ErrCode](#oh_preferences_errcode)
412
413
414### OH_Preferences_GetString()
415
416```
417int OH_Preferences_GetString (OH_Preferences *preference, const char *key, char **value, uint32_t *valueLen )
418```
419
420**描述**
421
422获取Preferences实例对象中Key对应的字符串。
423
424**起始版本:** 13
425
426**参数:**
427
428| 名称 | 描述 |
429| -------- | -------- |
430| preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 |
431| key | 需要获取的Key的指针。 |
432| value | 该参数作为出参使用,表示指向获取到的字符串的二级指针,使用完毕后需要调用释放函数[OH_Preferences_FreeString](#oh_preferences_freestring)释放内存。 |
433| valueLen | 该参数作为出参使用,表示获取到的字符串长度的指针。 |
434
435**返回:**
436
437返回执行的错误码。
438
439若错误码为PREFERENCES_OK,表示操作成功。
440
441若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
442
443若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。
444
445若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。
446
447若错误码为PREFERENCES_ERROR_KEY_NOT_FOUND,表示查询的Key不存在。
448
449**参见:**
450
451[OH_Preferences](#oh_preferences)
452
453[OH_Preferences_ErrCode](#oh_preferences_errcode)
454
455
456### OH_Preferences_Open()
457
458```
459OH_Preferences* OH_Preferences_Open (OH_PreferencesOption *option, int *errCode )
460```
461
462**描述**
463
464打开一个Preferences实例对象并创建指向它的指针。 当不再需要使用指针时,请使用[OH_Preferences_Close](#oh_preferences_close)关闭实例对象。
465
466**起始版本:** 13
467
468**参数:**
469
470| 名称 | 描述 |
471| -------- | -------- |
472| option | 指向Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)的指针。 |
473| errCode | 该参数作为出参使用,表示指向返回错误码的指针,详见[OH_Preferences_ErrCode](#oh_preferences_errcode)。 |
474
475**返回:**
476
477当操作成功时,返回指向打开的Preferences对象[OH_Preferences](#oh_preferences)实例对象的指针,失败返回空指针。
478
479**参见:**
480
481[OH_Preferences](#oh_preferences)
482
483[OH_PreferencesOption](#oh_preferencesoption)
484
485[OH_Preferences_ErrCode](#oh_preferences_errcode)
486
487
488### OH_Preferences_RegisterDataObserver()
489
490```
491int OH_Preferences_RegisterDataObserver (OH_Preferences *preference, void *context, OH_PreferencesDataObserver observer, const char *keys[], uint32_t keyCount )
492```
493
494**描述**
495
496对选取的Key注册数据变更订阅。订阅的Key的值发生变更后,在调用OH_Preferences_Close()后触发回调。
497
498**起始版本:** 13
499
500**参数:**
501
502| 名称 | 描述 |
503| -------- | -------- |
504| preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 |
505| context | 应用上下文的指针。 |
506| observer | 订阅数据变更关联的回调函数[OH_PreferencesDataObserver](#oh_preferencesdataobserver)。 |
507| keys | 需要订阅的Key数组。 |
508| keyCount | 需要订阅的Key的数量。 |
509
510**返回:**
511
512返回执行的错误码。
513
514若错误码为PREFERENCES_OK,表示操作成功。
515
516若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
517
518若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。
519
520若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。
521
522若错误码为PREFERENCES_ERROR_GET_DATAOBSMGRCLIENT,表示获取数据变更订阅服务失败。
523
524**参见:**
525
526[OH_Preferences](#oh_preferences)
527
528[OH_PreferencesDataObserver](#oh_preferencesdataobserver)
529
530[OH_Preferences_ErrCode](#oh_preferences_errcode)
531
532
533### OH_Preferences_SetBool()
534
535```
536int OH_Preferences_SetBool (OH_Preferences *preference, const char *key, bool value )
537```
538
539**描述**
540
541根据Key设置Preferences实例对象中的布尔值。
542
543**起始版本:** 13
544
545**参数:**
546
547| 名称 | 描述 |
548| -------- | -------- |
549| preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 |
550| key | 指向需要设置的Key的指针。 |
551| value | 需要设置的布尔值。 |
552
553**返回:**
554
555返回执行的错误码。
556
557若错误码为PREFERENCES_OK,表示操作成功。
558
559若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
560
561若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。
562
563若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。
564
565**参见:**
566
567[OH_Preferences](#oh_preferences)
568
569[OH_Preferences_ErrCode](#oh_preferences_errcode)
570
571
572### OH_Preferences_SetInt()
573
574```
575int OH_Preferences_SetInt (OH_Preferences *preference, const char *key, int value )
576```
577
578**描述**
579
580根据Key设置Preferences实例对象中的整型值。
581
582**起始版本:** 13
583
584**参数:**
585
586| 名称 | 描述 |
587| -------- | -------- |
588| preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 |
589| key | 指向需要设置的Key的指针。 |
590| value | 需要设置的整型值。 |
591
592**返回:**
593
594返回执行的错误码。
595
596若错误码为PREFERENCES_OK,表示操作成功。
597
598若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
599
600若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。
601
602若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。
603
604**参见:**
605
606[OH_Preferences](#oh_preferences)
607
608[OH_Preferences_ErrCode](#oh_preferences_errcode)
609
610
611### OH_Preferences_SetString()
612
613```
614int OH_Preferences_SetString (OH_Preferences *preference, const char *key, const char *value )
615```
616
617**描述**
618
619根据Key设置Preferences实例对象中的字符串。
620
621**起始版本:** 13
622
623**参数:**
624
625| 名称 | 描述 |
626| -------- | -------- |
627| preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 |
628| key | 指向需要设置的Key的指针。 |
629| value | 指向需要设置的字符串指针。 |
630
631**返回:**
632
633返回执行的错误码。
634
635若错误码为PREFERENCES_OK,表示操作成功。
636
637若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
638
639若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。
640
641若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。
642
643**参见:**
644
645[OH_Preferences](#oh_preferences)
646
647[OH_Preferences_ErrCode](#oh_preferences_errcode)
648
649
650### OH_Preferences_UnregisterDataObserver()
651
652```
653int OH_Preferences_UnregisterDataObserver (OH_Preferences *preference, void *context, OH_PreferencesDataObserver observer, const char *keys[], uint32_t keyCount )
654```
655
656**描述**
657
658取消注册选取Key的数据变更订阅。
659
660**起始版本:** 13
661
662**参数:**
663
664| 名称 | 描述 |
665| -------- | -------- |
666| preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 |
667| context | 应用上下文的指针。 |
668| observer | 订阅数据变更关联的回调函数[OH_PreferencesDataObserver](#oh_preferencesdataobserver)。 |
669| keys | 需要取消订阅的Key数组。 |
670| keyCount | 需要取消订阅的Key的数量。 |
671
672**返回:**
673
674返回执行的错误码。
675
676若错误码为PREFERENCES_OK,表示操作成功。
677
678若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
679
680若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。
681
682若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。
683
684**参见:**
685
686[OH_Preferences](#oh_preferences)
687
688[OH_PreferencesDataObserver](#oh_preferencesdataobserver)
689
690[OH_Preferences_ErrCode](#oh_preferences_errcode)
691
692
693### OH_PreferencesOption_Create()
694
695```
696OH_PreferencesOption* OH_PreferencesOption_Create (void )
697```
698
699**描述**
700
701创建一个Preferences配置选项的[OH_PreferencesOption](#oh_preferencesoption)实例对象以及指向它的指针。 当不再需要使用指针时,请使用[OH_PreferencesOption_Destroy](#oh_preferencesoption_destroy)销毁实例对象,否则会导致内存泄漏。
702
703**起始版本:** 13
704
705**返回:**
706
707如果操作成功,返回指向Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的指针。失败返回空指针。
708
709**参见:**
710
711[OH_PreferencesOption](#oh_preferencesoption)
712
713
714### OH_PreferencesOption_Destroy()
715
716```
717int OH_PreferencesOption_Destroy (OH_PreferencesOption *option)
718```
719
720**描述**
721
722销毁Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例。
723
724**起始版本:** 13
725
726**参数:**
727
728| 名称 | 描述 |
729| -------- | -------- |
730| option | Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的指针。 |
731
732**返回:**
733
734返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
735
736**参见:**
737
738[OH_PreferencesOption](#oh_preferencesoption)
739
740[OH_Preferences_ErrCode](#oh_preferences_errcode)
741
742
743### OH_PreferencesOption_SetBundleName()
744
745```
746int OH_PreferencesOption_SetBundleName (OH_PreferencesOption *option, const char *bundleName )
747```
748
749**描述**
750
751设置Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的包名称。
752
753**起始版本:** 13
754
755**参数:**
756
757| 名称 | 描述 |
758| -------- | -------- |
759| option | Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的指针。 |
760| bundleName | 需要设置的包名称。 |
761
762**返回:**
763
764返回执行的错误码。
765
766若错误码为PREFERENCES_OK,表示操作成功。
767
768若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
769
770**参见:**
771
772[OH_PreferencesOption](#oh_preferencesoption)
773
774[OH_Preferences_ErrCode](#oh_preferences_errcode)
775
776
777### OH_PreferencesOption_SetDataGroupId()
778
779```
780int OH_PreferencesOption_SetDataGroupId (OH_PreferencesOption *option, const char *dataGroupId )
781```
782
783**描述**
784
785设置Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的应用组ID。
786
787设置应用组ID后,会指定在此应用组ID对应的沙箱路径下创建Preferences实例。
788
789应用组ID需要向应用市场获取,暂不支持。
790
791当传入的应用组ID为空字符串时,默认在本应用沙箱目录下创建Preferences实例。
792
793**起始版本:** 13
794
795**参数:**
796
797| 名称 | 描述 |
798| -------- | -------- |
799| option | Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的指针。 |
800| dataGroupId | 需要设置的应用组ID。 |
801
802**返回:**
803
804返回执行的错误码。
805
806若错误码为PREFERENCES_OK,表示操作成功。
807
808若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
809
810**参见:**
811
812[OH_PreferencesOption](#oh_preferencesoption)
813
814[OH_Preferences_ErrCode](#oh_preferences_errcode)
815
816
817### OH_PreferencesOption_SetFileName()
818
819```
820int OH_PreferencesOption_SetFileName (OH_PreferencesOption *option, const char *fileName )
821```
822
823**描述**
824
825设置Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的文件名称。
826
827**起始版本:** 13
828
829**参数:**
830
831| 名称 | 描述 |
832| -------- | -------- |
833| option | 指向Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的指针。 |
834| fileName | 需要设置的文件名称。 |
835
836**返回:**
837
838返回执行的错误码。
839
840若错误码为PREFERENCES_OK,表示操作成功。
841
842若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
843
844**参见:**
845
846[OH_PreferencesOption](#oh_preferencesoption)
847
848[OH_Preferences_ErrCode](#oh_preferences_errcode)
849
850
851### OH_PreferencesPair_GetKey()
852
853```
854const char* OH_PreferencesPair_GetKey (const OH_PreferencesPair *pairs, uint32_t index )
855```
856
857**描述**
858
859获取KV数据中索引对应数据的键。
860
861**起始版本:** 13
862
863**参数:**
864
865| 名称 | 描述 |
866| -------- | -------- |
867| pairs | 目标KV数据[OH_PreferencesPair](#oh_preferencespair)的指针。 |
868| index | 目标KV数据[OH_PreferencesPair](#oh_preferencespair)的索引值。 |
869
870**返回:**
871
872如果操作成功,返回获取到的键的指针。操作失败或传参不合法返回空指针。
873
874**参见:**
875
876[OH_PreferencesPair](#oh_preferencespair)
877
878
879### OH_PreferencesPair_GetPreferencesValue()
880
881```
882const OH_PreferencesValue* OH_PreferencesPair_GetPreferencesValue (const OH_PreferencesPair *pairs, uint32_t index )
883```
884
885**描述**
886
887获取KV数据数组中索引对应的值。
888
889**起始版本:** 13
890
891**参数:**
892
893| 名称 | 描述 |
894| -------- | -------- |
895| pairs | 目标KV数据[OH_PreferencesPair](#oh_preferencespair)的指针。 |
896| index | 目标KV数据[OH_PreferencesPair](#oh_preferencespair)的索引值。 |
897
898**返回:**
899
900如果操作成功,返回获取到的值对象的指针。操作失败或传参不合法返回空指针。
901
902**参见:**
903
904[OH_PreferencesValue](#oh_preferencesvalue)
905
906
907### OH_PreferencesValue_GetBool()
908
909```
910int OH_PreferencesValue_GetBool (const OH_PreferencesValue *object, bool *value )
911```
912
913**描述**
914
915从PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)中获取一个布尔值。
916
917**起始版本:** 13
918
919**参数:**
920
921| 名称 | 描述 |
922| -------- | -------- |
923| object | PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)的指针。 |
924| value | 该参数作为出参使用,表示指向获取到的布尔值的指针。 |
925
926**返回:**
927
928返回执行的错误码。
929
930若错误码为PREFERENCES_OK,表示操作成功。
931
932若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
933
934若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。
935
936若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。
937
938**参见:**
939
940[OH_PreferencesValue](#oh_preferencesvalue)
941
942[OH_Preferences_ErrCode](#oh_preferences_errcode)
943
944
945### OH_PreferencesValue_GetInt()
946
947```
948int OH_PreferencesValue_GetInt (const OH_PreferencesValue* object, int* value )
949```
950
951**描述**
952
953从PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)中获取一个整型值。
954
955**起始版本:** 13
956
957**参数:**
958
959| 名称 | 描述 |
960| -------- | -------- |
961| object | PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)的指针。 |
962| value | 该参数作为出参使用,表示指向获取到的整型值的指针。 |
963
964**返回:**
965
966返回执行的错误码。
967
968若错误码为PREFERENCES_OK,表示操作成功。
969
970若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
971
972若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。
973
974若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。
975
976**参见:**
977
978[OH_PreferencesValue](#oh_preferencesvalue)
979
980[OH_Preferences_ErrCode](#oh_preferences_errcode)
981
982
983### OH_PreferencesValue_GetString()
984
985```
986int OH_PreferencesValue_GetString (const OH_PreferencesValue *object, char **value, uint32_t *valueLen )
987```
988
989**描述**
990
991从PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)中获取字符串。
992
993**起始版本:** 13
994
995**参数:**
996
997| 名称 | 描述 |
998| -------- | -------- |
999| object | PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)的指针。 |
1000| value | 该参数作为出参使用,表示指向获取到的字符串的二级指针,使用完毕后需要调用释放函数[OH_Preferences_FreeString](#oh_preferences_freestring)释放内存。 |
1001| valueLen | 该参数作为出参使用,表示指向获取到的字符串长度的指针。 |
1002
1003**返回:**
1004
1005返回执行的错误码。
1006
1007若错误码为PREFERENCES_OK,表示操作成功。
1008
1009若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。
1010
1011若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。
1012
1013若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。
1014
1015**参见:**
1016
1017[OH_PreferencesValue](#oh_preferencesvalue)
1018
1019[OH_Preferences_ErrCode](#oh_preferences_errcode)
1020
1021
1022### OH_PreferencesValue_GetValueType()
1023
1024```
1025Preference_ValueType OH_PreferencesValue_GetValueType (const OH_PreferencesValue *object)
1026```
1027
1028**描述**
1029
1030获取PreferencesValue对象的数据类型。
1031
1032**起始版本:** 13
1033
1034**参数:**
1035
1036| 名称 | 描述 |
1037| -------- | -------- |
1038| object | PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)的指针。 |
1039
1040**返回:**
1041
1042返回获取到的数据类型枚举。若返回数据类型枚举为PREFERENCE_TYPE_NULL,代表传参不合法。
1043
1044**参见:**
1045
1046[OH_PreferencesValue](#oh_preferencesvalue)
1047