# Preferences ## 概述 首选项模块(Preferences)提供Key-Value键值型数据(后续简称KV数据)的处理接口,实现对轻量级KV数据的查询、修改和持久化功能。 **系统能力:** SystemCapability.DistributedDataManager.Preferences.Core **起始版本:** 13 ## 汇总 ### 文件 | 名称 | 描述 | | -------- | -------- | | [oh_preferences.h](oh__preferences_8h.md) | 提供访问Preferences对象的接口与数据结构。 | | [oh_preferences_err_code.h](oh__preferences__err__code_8h.md) | 声明首选项模块统一使用的错误码信息。 | | [oh_preferences_option.h](oh__preferences__option_8h.md) | 提供访问Preferences配置选项(PreferencesOption)的接口与数据结构。 | | [oh_preferences_value.h](oh__preferences__value_8h.md) | 提供访问Preferences值(PreferencesValue)对象的接口、枚举类型与数据结构。 | ### 类型定义 | 名称 | 描述 | | -------- | -------- | | typedef struct [OH_Preferences](#oh_preferences) [OH_Preferences](#oh_preferences) | 定义Preferences对象类型。 | | typedef void(\* [OH_PreferencesDataObserver](#oh_preferencesdataobserver)) (void \*context, const [OH_PreferencesPair](#oh_preferencespair) \*pairs, uint32_t count) | 定义数据变更触发的回调函数类型。 | | typedef enum [OH_Preferences_ErrCode](#oh_preferences_errcode) [OH_Preferences_ErrCode](#oh_preferences_errcode) | 错误码信息。 | | typedef struct [OH_PreferencesOption](#oh_preferencesoption) [OH_PreferencesOption](#oh_preferencesoption) | 定义Preferences配置选项的数据结构。 | | typedef enum [Preference_ValueType](#preference_valuetype) [Preference_ValueType](#preference_valuetype) | 定义PreferencesValue的数据类型。 | | typedef struct [OH_PreferencesPair](#oh_preferencespair) [OH_PreferencesPair](#oh_preferencespair) | 定义Preferences使用的KV数据对象类型。 | | typedef struct [OH_PreferencesValue](#oh_preferencesvalue) [OH_PreferencesValue](#oh_preferencesvalue) | 定义PreferencesValue对象类型。 | ### 枚举 | 名称 | 描述 | | -------- | -------- | | [OH_Preferences_ErrCode](#oh_preferences_errcode-1) {
PREFERENCES_OK = 0, PREFERENCES_ERROR_INVALID_PARAM = 401, PREFERENCES_ERROR_NOT_SUPPORTED = 801, PREFERENCES_ERROR_BASE = 15500000,
PREFERENCES_ERROR_DELETE_FILE = 15500010, PREFERENCES_ERROR_STORAGE = 15500011, PREFERENCES_ERROR_MALLOC = 15500012, PREFERENCES_ERROR_KEY_NOT_FOUND = 15500013,
PREFERENCES_ERROR_GET_DATAOBSMGRCLIENT = 15500019
} | 错误码信息。 | | [Preference_ValueType](#preference_valuetype-1) {
PREFERENCE_TYPE_NULL = 0, PREFERENCE_TYPE_INT, PREFERENCE_TYPE_BOOL, PREFERENCE_TYPE_STRING,
PREFERENCE_TYPE_BUTT
} | 定义PreferencesValue的数据类型。 | ### 函数 | 名称 | 描述 | | -------- | -------- | | [OH_Preferences](#oh_preferences) \* [OH_Preferences_Open](#oh_preferences_open) ([OH_PreferencesOption](#oh_preferencesoption) \*option, int \*errCode) | 打开一个Preferences实例对象并创建指向它的指针。 当不再需要使用指针时,请使用[OH_Preferences_Close](#oh_preferences_close)关闭实例对象。 | | int [OH_Preferences_Close](#oh_preferences_close) ([OH_Preferences](#oh_preferences) \*preference) | 关闭一个Preferences实例对象。 | | int [OH_Preferences_GetInt](#oh_preferences_getint) ([OH_Preferences](#oh_preferences) \*preference, const char \*key, int \*value) | 获取Preferences实例对象中Key对应的整型值。 | | int [OH_Preferences_GetBool](#oh_preferences_getbool) ([OH_Preferences](#oh_preferences) \*preference, const char \*key, bool \*value) | 获取Preferences实例对象中Key对应的布尔值。 | | int [OH_Preferences_GetString](#oh_preferences_getstring) ([OH_Preferences](#oh_preferences) \*preference, const char \*key, char \*\*value, uint32_t \*valueLen) | 获取Preferences实例对象中Key对应的字符串。 | | void [OH_Preferences_FreeString](#oh_preferences_freestring) (char \*string) | 释放从Preferences实例对象中获取的字符串。 | | int [OH_Preferences_SetInt](#oh_preferences_setint) ([OH_Preferences](#oh_preferences) \*preference, const char \*key, int value) | 根据Key设置Preferences实例对象中的整型值。 | | int [OH_Preferences_SetBool](#oh_preferences_setbool) ([OH_Preferences](#oh_preferences) \*preference, const char \*key, bool value) | 根据Key设置Preferences实例对象中的布尔值。 | | int [OH_Preferences_SetString](#oh_preferences_setstring) ([OH_Preferences](#oh_preferences) \*preference, const char \*key, const char \*value) | 根据Key设置Preferences实例对象中的字符串。 | | int [OH_Preferences_Delete](#oh_preferences_delete) ([OH_Preferences](#oh_preferences) \*preference, const char \*key) | 在Preferences实例对象中删除Key对应的KV数据。 | | 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()后触发回调。 | | 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的数据变更订阅。 | | [OH_PreferencesOption](#oh_preferencesoption) \* [OH_PreferencesOption_Create](#oh_preferencesoption_create) (void) | 创建一个Preferences配置选项的[OH_PreferencesOption](#oh_preferencesoption)实例对象以及指向它的指针。 当不再需要使用指针时,请使用[OH_PreferencesOption_Destroy](#oh_preferencesoption_destroy)销毁实例对象,否则会导致内存泄漏。 | | int [OH_PreferencesOption_SetFileName](#oh_preferencesoption_setfilename) ([OH_PreferencesOption](#oh_preferencesoption) \*option, const char \*fileName) | 设置Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的文件名称。 | | int [OH_PreferencesOption_SetBundleName](#oh_preferencesoption_setbundlename) ([OH_PreferencesOption](#oh_preferencesoption) \*option, const char \*bundleName) | 设置Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的包名称。 | | int [OH_PreferencesOption_SetDataGroupId](#oh_preferencesoption_setdatagroupid) ([OH_PreferencesOption](#oh_preferencesoption) \*option, const char \*dataGroupId) | 设置Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的应用组ID。 | | int [OH_PreferencesOption_Destroy](#oh_preferencesoption_destroy) ([OH_PreferencesOption](#oh_preferencesoption) \*option) | 销毁Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例。 | | const char \* [OH_PreferencesPair_GetKey](#oh_preferencespair_getkey) (const [OH_PreferencesPair](#oh_preferencespair) \*pairs, uint32_t index) | 获取KV数据中索引对应数据的键。 | | const [OH_PreferencesValue](#oh_preferencesvalue) \* [OH_PreferencesPair_GetPreferencesValue](#oh_preferencespair_getpreferencesvalue) (const [OH_PreferencesPair](#oh_preferencespair) \*pairs, uint32_t index) | 获取KV数据数组中索引对应的值。 | | [Preference_ValueType](#preference_valuetype) [OH_PreferencesValue_GetValueType](#oh_preferencesvalue_getvaluetype) (const [OH_PreferencesValue](#oh_preferencesvalue) \*object) | 获取PreferencesValue对象的数据类型。 | | int [OH_PreferencesValue_GetInt](#oh_preferencesvalue_getint) (const [OH_PreferencesValue](#oh_preferencesvalue) \*object, int \*value) | 从PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)中获取一个整型值。 | | int [OH_PreferencesValue_GetBool](#oh_preferencesvalue_getbool) (const [OH_PreferencesValue](#oh_preferencesvalue) \*object, bool \*value) | 从PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)中获取一个布尔值。 | | int [OH_PreferencesValue_GetString](#oh_preferencesvalue_getstring) (const [OH_PreferencesValue](#oh_preferencesvalue) \*object, char \*\*value, uint32_t \*valueLen) | 从PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)中获取字符串。 | ## 类型定义说明 ### OH_Preferences ``` typedef struct OH_Preferences OH_Preferences ``` **描述** 定义Preferences对象类型。 **起始版本:** 13 ### OH_Preferences_ErrCode ``` typedef enum OH_Preferences_ErrCode OH_Preferences_ErrCode ``` **描述** 错误码信息。 **起始版本:** 13 ### OH_PreferencesDataObserver ``` typedef void(*OH_PreferencesDataObserver) (void *context, const OH_PreferencesPair *pairs, uint32_t count) ``` **描述** 定义数据变更触发的回调函数类型。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | context | 应用上下文的指针。 | | pairs | 发生变更的KV数据的指针。 | | count | 发生变更的KV数据的数量。 | **参见:** [OH_PreferencesPair](#oh_preferencespair) ### OH_PreferencesOption ``` typedef struct OH_PreferencesOption OH_PreferencesOption ``` **描述** 定义Preferences配置选项的数据结构。 **起始版本:** 13 ### OH_PreferencesPair ``` typedef struct OH_PreferencesPair OH_PreferencesPair ``` **描述** 定义Preferences使用的KV数据对象类型。 **起始版本:** 13 ### OH_PreferencesValue ``` typedef struct OH_PreferencesValue OH_PreferencesValue ``` **描述** 定义PreferencesValue对象类型。 **起始版本:** 13 ### Preference_ValueType ``` typedef enum Preference_ValueType Preference_ValueType ``` **描述** 定义PreferencesValue的数据类型。 **起始版本:** 13 ## 枚举类型说明 ### OH_Preferences_ErrCode ``` enum OH_Preferences_ErrCode ``` **描述** 错误码信息。 **起始版本:** 13 | 枚举值 | 描述 | | -------- | -------- | | PREFERENCES_OK | 操作执行成功 | | PREFERENCES_ERROR_INVALID_PARAM | 参数不合法 | | PREFERENCES_ERROR_NOT_SUPPORTED | 系统能力不支持 | | PREFERENCES_ERROR_BASE | 基准错误码 | | PREFERENCES_ERROR_DELETE_FILE | 删除文件失败 | | PREFERENCES_ERROR_STORAGE | 存储异常 | | PREFERENCES_ERROR_MALLOC | 申请内存失败 | | PREFERENCES_ERROR_KEY_NOT_FOUND | Key不存在 | | PREFERENCES_ERROR_GET_DATAOBSMGRCLIENT | 获取数据变更订阅服务失败 | ### Preference_ValueType ``` enum Preference_ValueType ``` **描述** 定义PreferencesValue的数据类型。 **起始版本:** 13 | 枚举值 | 描述 | | -------- | -------- | | PREFERENCE_TYPE_NULL | 空类型 | | PREFERENCE_TYPE_INT | 整型类型 | | PREFERENCE_TYPE_BOOL | 布尔类型 | | PREFERENCE_TYPE_STRING | 字符串类型 | | PREFERENCE_TYPE_BUTT | 结束类型 | ## 函数说明 ### OH_Preferences_Close() ``` int OH_Preferences_Close (OH_Preferences *preference) ``` **描述** 关闭一个Preferences实例对象。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | preference | 指向需要关闭的[OH_Preferences](#oh_preferences)实例对象的指针。 | **返回:** 返回执行的错误码,详见[OH_Preferences_ErrCode](#oh_preferences_errcode)。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。 若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 **参见:** [OH_Preferences](#oh_preferences) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_Preferences_Delete() ``` int OH_Preferences_Delete (OH_Preferences *preference, const char *key ) ``` **描述** 在Preferences实例对象中删除Key对应的KV数据。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 | | key | 指向需要删除的Key的指针。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。 若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 **参见:** [OH_Preferences](#oh_preferences) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_Preferences_FreeString() ``` void OH_Preferences_FreeString (char *string) ``` **描述** 释放从Preferences实例对象中获取的字符串。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | string | 需要释放的字符串指针。 | **参见:** [OH_Preferences](#oh_preferences) ### OH_Preferences_GetBool() ``` int OH_Preferences_GetBool (OH_Preferences *preference, const char *key, bool *value ) ``` **描述** 获取Preferences实例对象中Key对应的布尔值。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 | | key | 需要获取的Key的指针。 | | value | 该参数作为出参使用,表示指向获取到的布尔值的指针。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。 若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 若错误码为PREFERENCES_ERROR_KEY_NOT_FOUND,表示查询的key不存在。 **参见:** [OH_Preferences](#oh_preferences) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_Preferences_GetInt() ``` int OH_Preferences_GetInt (OH_Preferences *preference, const char *key, int *value ) ``` **描述** 获取Preferences实例对象中Key对应的整型值。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 | | key | 需要获取的Key的指针。 | | value | 该参数作为出参使用,表示指向获取到的整型值的指针。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。 若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 若错误码为PREFERENCES_ERROR_KEY_NOT_FOUND,表示查询的Key不存在。 **参见:** [OH_Preferences](#oh_preferences) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_Preferences_GetString() ``` int OH_Preferences_GetString (OH_Preferences *preference, const char *key, char **value, uint32_t *valueLen ) ``` **描述** 获取Preferences实例对象中Key对应的字符串。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 | | key | 需要获取的Key的指针。 | | value | 该参数作为出参使用,表示指向获取到的字符串的二级指针,使用完毕后需要调用释放函数[OH_Preferences_FreeString](#oh_preferences_freestring)释放内存。 | | valueLen | 该参数作为出参使用,表示获取到的字符串长度的指针。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。 若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 若错误码为PREFERENCES_ERROR_KEY_NOT_FOUND,表示查询的Key不存在。 **参见:** [OH_Preferences](#oh_preferences) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_Preferences_Open() ``` OH_Preferences* OH_Preferences_Open (OH_PreferencesOption *option, int *errCode ) ``` **描述** 打开一个Preferences实例对象并创建指向它的指针。 当不再需要使用指针时,请使用[OH_Preferences_Close](#oh_preferences_close)关闭实例对象。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | option | 指向Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)的指针。 | | errCode | 该参数作为出参使用,表示指向返回错误码的指针,详见[OH_Preferences_ErrCode](#oh_preferences_errcode)。 | **返回:** 当操作成功时,返回指向打开的Preferences对象[OH_Preferences](#oh_preferences)实例对象的指针,失败返回空指针。 **参见:** [OH_Preferences](#oh_preferences) [OH_PreferencesOption](#oh_preferencesoption) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_Preferences_RegisterDataObserver() ``` int OH_Preferences_RegisterDataObserver (OH_Preferences *preference, void *context, OH_PreferencesDataObserver observer, const char *keys[], uint32_t keyCount ) ``` **描述** 对选取的Key注册数据变更订阅。订阅的Key的值发生变更后,在调用OH_Preferences_Close()后触发回调。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 | | context | 应用上下文的指针。 | | observer | 订阅数据变更关联的回调函数[OH_PreferencesDataObserver](#oh_preferencesdataobserver)。 | | keys | 需要订阅的Key数组。 | | keyCount | 需要订阅的Key的数量。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。 若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 若错误码为PREFERENCES_ERROR_GET_DATAOBSMGRCLIENT,表示获取数据变更订阅服务失败。 **参见:** [OH_Preferences](#oh_preferences) [OH_PreferencesDataObserver](#oh_preferencesdataobserver) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_Preferences_SetBool() ``` int OH_Preferences_SetBool (OH_Preferences *preference, const char *key, bool value ) ``` **描述** 根据Key设置Preferences实例对象中的布尔值。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 | | key | 指向需要设置的Key的指针。 | | value | 需要设置的布尔值。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。 若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 **参见:** [OH_Preferences](#oh_preferences) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_Preferences_SetInt() ``` int OH_Preferences_SetInt (OH_Preferences *preference, const char *key, int value ) ``` **描述** 根据Key设置Preferences实例对象中的整型值。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 | | key | 指向需要设置的Key的指针。 | | value | 需要设置的整型值。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。 若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 **参见:** [OH_Preferences](#oh_preferences) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_Preferences_SetString() ``` int OH_Preferences_SetString (OH_Preferences *preference, const char *key, const char *value ) ``` **描述** 根据Key设置Preferences实例对象中的字符串。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 | | key | 指向需要设置的Key的指针。 | | value | 指向需要设置的字符串指针。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。 若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 **参见:** [OH_Preferences](#oh_preferences) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_Preferences_UnregisterDataObserver() ``` int OH_Preferences_UnregisterDataObserver (OH_Preferences *preference, void *context, OH_PreferencesDataObserver observer, const char *keys[], uint32_t keyCount ) ``` **描述** 取消注册选取Key的数据变更订阅。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | preference | 指向目标[OH_Preferences](#oh_preferences)实例对象的指针。 | | context | 应用上下文的指针。 | | observer | 订阅数据变更关联的回调函数[OH_PreferencesDataObserver](#oh_preferencesdataobserver)。 | | keys | 需要取消订阅的Key数组。 | | keyCount | 需要取消订阅的Key的数量。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。 若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 **参见:** [OH_Preferences](#oh_preferences) [OH_PreferencesDataObserver](#oh_preferencesdataobserver) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_PreferencesOption_Create() ``` OH_PreferencesOption* OH_PreferencesOption_Create (void ) ``` **描述** 创建一个Preferences配置选项的[OH_PreferencesOption](#oh_preferencesoption)实例对象以及指向它的指针。 当不再需要使用指针时,请使用[OH_PreferencesOption_Destroy](#oh_preferencesoption_destroy)销毁实例对象,否则会导致内存泄漏。 **起始版本:** 13 **返回:** 如果操作成功,返回指向Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的指针。失败返回空指针。 **参见:** [OH_PreferencesOption](#oh_preferencesoption) ### OH_PreferencesOption_Destroy() ``` int OH_PreferencesOption_Destroy (OH_PreferencesOption *option) ``` **描述** 销毁Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | option | Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的指针。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 **参见:** [OH_PreferencesOption](#oh_preferencesoption) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_PreferencesOption_SetBundleName() ``` int OH_PreferencesOption_SetBundleName (OH_PreferencesOption *option, const char *bundleName ) ``` **描述** 设置Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的包名称。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | option | Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的指针。 | | bundleName | 需要设置的包名称。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 **参见:** [OH_PreferencesOption](#oh_preferencesoption) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_PreferencesOption_SetDataGroupId() ``` int OH_PreferencesOption_SetDataGroupId (OH_PreferencesOption *option, const char *dataGroupId ) ``` **描述** 设置Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的应用组ID。 设置应用组ID后,会指定在此应用组ID对应的沙箱路径下创建Preferences实例。 应用组ID需要向应用市场获取,暂不支持。 当传入的应用组ID为空字符串时,默认在本应用沙箱目录下创建Preferences实例。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | option | Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的指针。 | | dataGroupId | 需要设置的应用组ID。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 **参见:** [OH_PreferencesOption](#oh_preferencesoption) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_PreferencesOption_SetFileName() ``` int OH_PreferencesOption_SetFileName (OH_PreferencesOption *option, const char *fileName ) ``` **描述** 设置Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的文件名称。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | option | 指向Preferences配置选项[OH_PreferencesOption](#oh_preferencesoption)实例对象的指针。 | | fileName | 需要设置的文件名称。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 **参见:** [OH_PreferencesOption](#oh_preferencesoption) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_PreferencesPair_GetKey() ``` const char* OH_PreferencesPair_GetKey (const OH_PreferencesPair *pairs, uint32_t index ) ``` **描述** 获取KV数据中索引对应数据的键。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | pairs | 目标KV数据[OH_PreferencesPair](#oh_preferencespair)的指针。 | | index | 目标KV数据[OH_PreferencesPair](#oh_preferencespair)的索引值。 | **返回:** 如果操作成功,返回获取到的键的指针。操作失败或传参不合法返回空指针。 **参见:** [OH_PreferencesPair](#oh_preferencespair) ### OH_PreferencesPair_GetPreferencesValue() ``` const OH_PreferencesValue* OH_PreferencesPair_GetPreferencesValue (const OH_PreferencesPair *pairs, uint32_t index ) ``` **描述** 获取KV数据数组中索引对应的值。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | pairs | 目标KV数据[OH_PreferencesPair](#oh_preferencespair)的指针。 | | index | 目标KV数据[OH_PreferencesPair](#oh_preferencespair)的索引值。 | **返回:** 如果操作成功,返回获取到的值对象的指针。操作失败或传参不合法返回空指针。 **参见:** [OH_PreferencesValue](#oh_preferencesvalue) ### OH_PreferencesValue_GetBool() ``` int OH_PreferencesValue_GetBool (const OH_PreferencesValue *object, bool *value ) ``` **描述** 从PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)中获取一个布尔值。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | object | PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)的指针。 | | value | 该参数作为出参使用,表示指向获取到的布尔值的指针。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。 若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 **参见:** [OH_PreferencesValue](#oh_preferencesvalue) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_PreferencesValue_GetInt() ``` int OH_PreferencesValue_GetInt (const OH_PreferencesValue* object, int* value ) ``` **描述** 从PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)中获取一个整型值。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | object | PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)的指针。 | | value | 该参数作为出参使用,表示指向获取到的整型值的指针。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。 若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 **参见:** [OH_PreferencesValue](#oh_preferencesvalue) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_PreferencesValue_GetString() ``` int OH_PreferencesValue_GetString (const OH_PreferencesValue *object, char **value, uint32_t *valueLen ) ``` **描述** 从PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)中获取字符串。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | object | PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)的指针。 | | value | 该参数作为出参使用,表示指向获取到的字符串的二级指针,使用完毕后需要调用释放函数[OH_Preferences_FreeString](#oh_preferences_freestring)释放内存。 | | valueLen | 该参数作为出参使用,表示指向获取到的字符串长度的指针。 | **返回:** 返回执行的错误码。 若错误码为PREFERENCES_OK,表示操作成功。 若错误码为PREFERENCES_ERROR_INVALID_PARAM,表示参数不合法。 若错误码为PREFERENCES_ERROR_STORAGE,表示存储异常。 若错误码为PREFERENCES_ERROR_MALLOC,表示内存分配失败。 **参见:** [OH_PreferencesValue](#oh_preferencesvalue) [OH_Preferences_ErrCode](#oh_preferences_errcode) ### OH_PreferencesValue_GetValueType() ``` Preference_ValueType OH_PreferencesValue_GetValueType (const OH_PreferencesValue *object) ``` **描述** 获取PreferencesValue对象的数据类型。 **起始版本:** 13 **参数:** | 名称 | 描述 | | -------- | -------- | | object | PreferencesValue对象[OH_PreferencesValue](#oh_preferencesvalue)的指针。 | **返回:** 返回获取到的数据类型枚举。若返回数据类型枚举为PREFERENCE_TYPE_NULL,代表传参不合法。 **参见:** [OH_PreferencesValue](#oh_preferencesvalue)