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