static constexpr const char *PNG_230_DIAL_IMAGE_PATH = APP_RES_PATH "/makephone/dial.bin";
static constexpr const char *PNG_230_HEADSET_1_IIMAGE_PATH = APP_RES_PATH "/makephone/headset_1.bin";
static constexpr const char *PNG_230_HEADSET_2_IIMAGE_PATH = APP_RES_PATH "/makephone/headset_2.bin";
+
+ static constexpr const char *PNG_ANSWER_230_TMAGE_PATH = APP_RES_PATH "/Phone/callanswer.bin";
+ static constexpr const char *PNG_HANDUP_230_IMAGE_PATH = APP_RES_PATH "/Phone/callhangup.bin";
/* ---------------------------------- 血氧中图片 --------------------------------- */
static constexpr const char *PNG_BLOODOXYGEN_IMAGE_PATH = APP_RES_PATH "/BLOODOXYGEN_VIEW.bin";
static constexpr const char *PNG_PULLBUTTON_FACE_IMAGE = APP_RES_PATH "/BLOOD_FLOW_IMAGE_01.bin";
// { \r
\r
\r
- //}\r
- //uapi_a2dp_snk_connect();\r
- //a2dp_snk_connect(bdAddr);\r
+ // }\r
+ // uapi_a2dp_snk_connect();\r
+ // a2dp_snk_connect(bdAddr);\r
if(cm_custom_ble_service_on_flag() && !get_ble_pair())\r
{\r
if(cm_get_A2DP_switch() || cm_get_HFP_switch())\r
//uapi_reconnect();\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_a2dp_snk_connect");\r
}\r
+ \r
+\r
if (status == GAP_PAIR_PAIRED) {\r
+ set_br_pair();\r
if (ConnectPhonePresenter::GetInstance() != nullptr) {\r
NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
}\r
{
time_t seconds;
time(&seconds);
+
+ CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSourcePhone);
// 接听和挂起状态需要持续显示通话计时
if (g_firstPriority != NO_NUMBER_STATUS) { // 接听
#include "languagecode/LanguageInit.h"
#include "ConfigModel.h"
#include "settings/include/SettingModel.h"
+#include "bleService.h"
namespace OHOS
{
extern Language languages[];
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
{
NativeAbility::GetInstance().Back();
+ br_adv_start(20);
}
return true;
}
UIView::OnClickListener* clickLeftListener{nullptr};
UIImageView *imageAgreeing{nullptr};
UIImageView *imageDissgree{nullptr};
+ UIImageView *imageperson{nullptr};
+
UILabel *callerDisplay{nullptr};
UILabel *currentTimes{nullptr};
+
+ UILabel *label_call_source{nullptr};
+ UILabel *label_call_hint{nullptr};
};
}
CallingView();
~CallingView();
UIViewGroup *CreateUIViewGroup();
+ UIViewGroup *CreateUIViewGroup(uint8_t);
UIImageView *GetImageMicrophone();
static CallingView *GetInstance();
UILabel *GetCallingDisplayLabel();
UIViewGroup *waitingGroup{nullptr};
CallerDisplayView *displayView{nullptr};
CallingView *callView{nullptr};
- DialingScreenView *screenView{nullptr};
+ CallingView *screenView{nullptr};
WaitingHintsView *waitingView{nullptr};
};
}
#include "CallerDisplayView.h"
#include "MainCallingPresenter.h"
#include "UiConfig.h"
+#include "phoneaddressmodel.h"
namespace OHOS {
static constexpr uint16 MATH_ZERO = 0;
static constexpr uint16 FONT_CURRENT_SIZE = 25;
static constexpr uint16 FONT_CALLER_SIZE = 40;
static CallerDisplayView *g_pMainView = nullptr;
+
+#define PHONE_DIR_GIRL_1 "/user/res/Phone/girl.bin"
+#define PHONE_DIR_BOY_1 "/user/res/Phone/boy.bin"
+
CallerDisplayView::CallerDisplayView()
{
g_pMainView = this;
delete imageDissgree;
imageDissgree = nullptr;
+
+ delete imageperson;
+ imageperson = nullptr;
+
delete callerDisplay;
callerDisplay = nullptr;
+ delete label_call_source;
+ label_call_source = nullptr;
+
delete currentTimes;
currentTimes = nullptr;
+ delete label_call_hint;
+ label_call_hint = nullptr;
+
delete group;
group = nullptr;
if (imageAgreeing == nullptr) {
return false;
}
- imageAgreeing->SetPosition(IMAGE_AGREEING_POSITION_X, IMAGE_ALL_POSITION_Y); // 30 : offset
- imageAgreeing->SetSrc(PNG_AGREEING_IMAGE_PATH);
+ imageAgreeing->SetPosition(369, 207); // 30 : offset
+ imageAgreeing->SetSrc(PNG_ANSWER_230_TMAGE_PATH);
imageAgreeing->SetTouchable(true);
imageAgreeing->SetViewId("answer");
group->Add(imageAgreeing);
if (imageDissgree == nullptr) {
return false;
}
- imageDissgree->SetPosition(IMAGE_DISSGREE_POSITION_X, IMAGE_ALL_POSITION_Y); // 30 : offset
- imageDissgree->SetSrc(PNG_DISSGREE_IMAGE_PATH);
+ imageDissgree->SetPosition(46, 207); // 30 : offset
+ imageDissgree->SetSrc(PNG_HANDUP_230_IMAGE_PATH);
imageDissgree->SetTouchable(true);
imageDissgree->SetViewId("displayHandUp");
group->Add(imageDissgree);
+ imageperson = new UIImageView();
+ if (imageperson == nullptr) {
+ return false;
+ }
+ imageperson->SetPosition(158, 158); // 30 : offset
+ imageperson->SetSrc(PNG_230_PERSON_IMAGE_PATH);
+ imageperson->SetTouchable(true);
+ imageperson->SetViewId("headset");
+
+ char name_buf[30]={0};
+ uint8_t sex;
+ if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),&sex))
+ {
+ if(sex)
+ imageperson->SetSrc(PHONE_DIR_BOY_1);
+ else
+ imageperson->SetSrc(PHONE_DIR_GIRL_1);
+ }
+
+ group->Add(imageperson);
+
+
+
return true;
}
callerDisplay->SetPosition(LABEL_PERCENT_POSITION_X, LABEL_PERCENT_POSITION_Y, VIEW_DISTANCE_TO_LEFT_SIDE,
TITLE_LABEL_DEFAULT_HEIGHT);
callerDisplay->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
- callerDisplay->SetText(CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
+
+ char name_buf[30]={0};
+ if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),NULL))
+ {
+ callerDisplay->SetText(name_buf);
+ }
+ else
+ {
+ callerDisplay->SetText(CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
+ }
+
callerDisplay->SetAlign(TEXT_ALIGNMENT_CENTER);
callerDisplay->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_CALLER_SIZE);
callerDisplay->SetTextColor(Color::White());
+ callerDisplay->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
group->Add(callerDisplay);
- currentTimes = new UILabel();
- if (currentTimes == nullptr) {
- return false;
+ if (label_call_hint == nullptr) {
+ label_call_hint = new UILabel();
}
- currentTimes->SetPosition(LABEL_CURREMTTIME_POSITION_X, LABEL_CURREMTTIME_POSITION_Y,
- VIEW_DISTANCE_TO_LEFT_SIDE, TITLE_LABEL_DEFAULT_HEIGHT);
- currentTimes->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
- currentTimes->SetAlign(TEXT_ALIGNMENT_CENTER);
- currentTimes->SetText(CallerLogModel::GetInstance()->InitDateHourTime().c_str());
- currentTimes->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_CURRENT_SIZE);
- currentTimes->SetTextColor(Color::White());
- group->Add(currentTimes);
+
+ label_call_hint->SetPosition(163, 353); // widget's left position and top position
+ label_call_hint->Resize(140, 35); // widget's width and height
+ label_call_hint->SetViewId("label3");// Set style
+ label_call_hint->SetStyle(STYLE_TEXT_FONT, 30);
+
+ // Set additional property
+ label_call_hint->SetText("挂断/接听");
+ label_call_hint->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
+ label_call_hint->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
+ label_call_hint->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ label_call_hint->SetRollSpeed(0);
+ label_call_hint->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ group->Add(label_call_hint);
+
+
+ if (label_call_source == nullptr) {
+ label_call_source = new UILabel();
+ }
+ label_call_source->SetPosition(133, 34); // widget's left position and top position
+ label_call_source->Resize(200, 60); // widget's width and height
+ label_call_source->SetViewId("label1");// Set style
+ label_call_source->SetStyle(STYLE_TEXT_FONT, 30);
+
+ // Set additional property
+ if (CallerLogModel::GetInstance()->GetCallSource() == CallerLogModel::CallSourceCat1)
+ label_call_source->SetText("手表来电");
+ else
+ label_call_source->SetText("手机来电");
+
+ label_call_source->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+ label_call_source->SetTextColor(Color::GetColorFromRGBA(0xAA, 0xAA, 0xAA, 0xff));
+ label_call_source->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ label_call_source->SetRollSpeed(0);
+ label_call_source->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ group->Add(label_call_source);
+
+
+
+ // currentTimes = new UILabel();
+ // if (currentTimes == nullptr) {
+ // return false;
+ // }
+ // currentTimes->SetPosition(LABEL_CURREMTTIME_POSITION_X, LABEL_CURREMTTIME_POSITION_Y,
+ // VIEW_DISTANCE_TO_LEFT_SIDE, TITLE_LABEL_DEFAULT_HEIGHT);
+ // currentTimes->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
+ // currentTimes->SetAlign(TEXT_ALIGNMENT_CENTER);
+ // currentTimes->SetText(CallerLogModel::GetInstance()->InitDateHourTime().c_str());
+ // currentTimes->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_CURRENT_SIZE);
+ // currentTimes->SetTextColor(Color::White());
+ // group->Add(currentTimes);
+
+
return true;
}
static constexpr uint16 LABEL_DISPLAY_FONE_SIZE = 40;
static CallingView *g_pMainView = nullptr;
+#define PHONE_DIR_GIRL_1 "/user/res/Phone/girl.bin"
+#define PHONE_DIR_BOY_1 "/user/res/Phone/boy.bin"
+
CallingView::CallingView()
{
g_pMainView = this;
}
+
CallingView::~CallingView()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallingView::~CallingView");
delete group;
group = nullptr;
+ delete imagedial;
+ imagedial = nullptr;
+
+
+ delete imageperson;
+ imageperson = nullptr;
+
+
if(dial_group)
{
dial_group->RemoveAll();
imageperson->SetTouchable(true);
imageperson->SetViewId("headset");
group->Add(imageperson);
+
+ char name_buf[30]={0};
+ uint8_t sex;
+ if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),&sex))
+ {
+ if(sex)
+ imageperson->SetSrc(PHONE_DIR_BOY_1);
+ else
+ imageperson->SetSrc(PHONE_DIR_GIRL_1);
+ }
return true;
}
callerDisplay->SetPosition(88, 81,
289, 40);
callerDisplay->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
- callerDisplay->SetText(CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
+
+ char name_buf[30]={0};
+ if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),NULL))
+ {
+ callerDisplay->SetText(name_buf);
+ }
+ else
+ {
+ callerDisplay->SetText(CallerLogModel::GetInstance()->GetPhoneNumber().c_str());
+ }
+
callerDisplay->SetAlign(TEXT_ALIGNMENT_CENTER);
callerDisplay->SetFont(DEFAULT_VECTOR_FONT_FILENAME, LABEL_DISPLAY_FONE_SIZE);
callerDisplay->SetTextColor(Color::White());
79, 35);
currentTimes->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
currentTimes->SetAlign(TEXT_ALIGNMENT_CENTER);
+
currentTimes->SetText(CallerLogModel::GetInstance()->InitDateHourTime().c_str());
+
+
+
+
currentTimes->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
currentTimes->SetTextColor(Color::GetColorFromRGBA(0xaa, 0xaa, 0xaa, 0xff));
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallingView::InitAddOnclickevent error");
return nullptr;
}
+ return group;
+}
-
-
+UIViewGroup *CallingView::CreateUIViewGroup(uint8_t type)
+{
+ group = new UIViewGroup();
+ if (group == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallingView::UIViewGroup::new group error");
+ return nullptr;
+ }
+ group->SetPosition(MATH_ZERO, MATH_ZERO);
+ group->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION); // 454 : value
+ if (!InitImageViewDisplay()) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallingView::InitImageViewDisplay error");
+ return nullptr;
+ }
+ if (!InitUILabelDisplay()) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallingView::InitUILabelDisplay error");
+ return nullptr;
+ }
+ currentTimes->SetText("拨号中..."); /* code */
+
+ if(!Initshowdial())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallingView::InitUILabelDisplay error");
+ return nullptr;
+ }
+ if (!InitAddOnclickevent()) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallingView::InitAddOnclickevent error");
+ return nullptr;
+ }
return group;
}
+
}
\ No newline at end of file
return false;
}
- if (DialingScreenView::GetInstance() == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainCallingPresenter::[InitPointerValue] DialingScreenView error");
- return false;
- }
+ // if (DialingScreenView::GetInstance() == nullptr) {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainCallingPresenter::[InitPointerValue] DialingScreenView error");
+ // return false;
+ // }
if (CallingView::GetInstance() == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainCallingPresenter::[InitPointerValue] CallingView error");
bool MainCallingPresenter::OnClick(UIView& view, const ClickEvent& event)
{
UNUSED(event);
-
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s",view.GetViewId());
if (!InitPointerValue()) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainCallingPresenter::InitPointerValue error");
return false;
return false;
}
- screenView = new DialingScreenView();
+ screenView = new CallingView();
if (screenView == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainCallingView::screenView");
return false;
}
- screenGroup = screenView->CreateUIViewGroup();
+ screenGroup = screenView->CreateUIViewGroup(0);
if (screenGroup == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainCallingView::screenGroup");
return false;
VIEW_DISTANCE_TO_LEFT_SIDE, TITLE_LABEL_DEFAULT_HEIGHT);
callerDisplay->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT);
char name_buf[30]={0};
- if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str()))
+ if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),NULL))
{
callerDisplay->SetText(name_buf);
}
void add_addressbook(struct Contact *data);
-bool get_phone_addrss_name(char *name,const char *phone);
+bool get_phone_addrss_name(char *name,const char *phone,uint8_t *sex);
void free_address();
sprintf_s(buf,20,"%s",(const char*)(info + i - 1)->tel);
char name[30]={0};
- if(get_phone_addrss_name(name,buf))
+ if(get_phone_addrss_name(name,buf,NULL))
{
buttonconfig.str=name;
}else
// }
}
- bool get_phone_addrss_name(char *name,const char *phone)
+ bool get_phone_addrss_name(char *name,const char *phone,uint8_t *sex)
{
for(int i=0;i<addressbook_t.num;i++)
{
if(strcmp(phone,addressbook_t.Contact_t[i].phone_number_t[0].number)==0)
{
strcpy(name,addressbook_t.Contact_t[i].name);
+ if(sex!=NULL)
+ *sex=addressbook_t.Contact_t[i].sex;
return true;
}
else if(phone,addressbook_t.Contact_t[i].phone_num==2)
if(strcmp(phone,addressbook_t.Contact_t[i].phone_number_t[1].number)==0)
{
strcpy(name,addressbook_t.Contact_t[i].name);
+ if(sex!=NULL)
+ *sex=addressbook_t.Contact_t[i].sex;
return true;
}
}
#include <custom_utils.h>
#include "themestyle/include/ThemeStyleModel.h"
#include "aivoice/include/AiVoiceModel.h"
-#include "ConfigModel.h"
#include "graphic_service.h"
+#include "bleService.h"
namespace OHOS
{
RebootAndShutdownModel::RebootAndShutdownModel() {}
#include <ohos_types.h>
#include "UiConfig.h"
#include <graphic_math.h>
+#include "bleService.h"
namespace OHOS
{
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
{
NativeAbility::GetInstance().Back();
+ br_adv_start(20);
}
return true;
}
UIView::OnClickListener* clickLeftListener{nullptr};\r
UIImageView *imageAgreeing{nullptr};\r
UIImageView *imageDissgree{nullptr};\r
+ \r
UILabel *callerDisplay{nullptr};\r
UILabel *currentTimes{nullptr};\r
};\r
UIViewGroup *group{nullptr};\r
UIView::OnClickListener* clickLeftListener{nullptr};\r
UIImageView *imageDissgree{nullptr};\r
+ \r
+ \r
UILabel *callerDisplay{nullptr};\r
UILabel *newcallHints{nullptr};\r
};\r
#include <dirent.h>
#include <ppg_service.h>
+#include "power_display_service.h"
#define before_file_day 30
memcpy_s(buf,max_len,path.c_str(),path.length());
}
+bool is_first_pair(void)
+{
+ return OHOS::ConfigModel::GetInstance()->GetisFirstTimeStart();
+}
+
//在此处实现,给UI回复消息。
void ble_app_reply(bool data)
}
+uint8_t get_br_is_pair(void)
+{
+ OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
+
+ return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_BR_PAIR);
+}
+
+void set_br_pair(void)
+{
+ OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
+
+ p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_BR_PAIR,1);
+ return;
+}
+bool get_lcd_state(void)
+{
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();
+ if (display_api->get_screen_state() != SCREEN_ON)
+ return false;
+ else
+ return true;
+}
uint8_t ble_get_heart_data()
{
void delete_before_file(uint8_t type);
+bool is_first_pair(void);
+
+uint8_t get_br_is_pair(void);
+
+void set_br_pair(void);
+
+bool get_lcd_state(void);
+
#ifdef __cplusplus
#if __cplusplus
}
}\r
\r
\r
+void br_adv_start(uint8_t sec)\r
+{\r
+ //ble广播开启\r
+ svr_ble_adv_start_param();\r
+\r
+ if(!get_br_is_pair())\r
+ { \r
+ gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, sec); \r
+ }\r
+}\r
+\r
+void br_adv_stop(void)\r
+{\r
+ gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 0);\r
+}\r
+\r
+\r
/* adapt ios adv data. *///设置广播和扫描数据\r
static void svr_ble_adv_data_set(int adv_id)\r
{\r
AdverFlag = true;\r
svr_ble_adv_start_param();\r
\r
- //gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE, 0);\r
+ gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE, 0);\r
\r
}\r
\r
void custom_ble_service_start_(uint8_t data);
void uapi_ble_disconnect_device(void);
+
+void br_adv_start(uint8_t sec);
+
+void br_adv_stop(void);
#ifdef __cplusplus
}
#endif
const char *number=CallerLogModel::GetInstance()->GetPhoneNumber().c_str();
char name[32]={0};
#ifdef FD230
- get_phone_addrss_name(name,number);
+ get_phone_addrss_name(name,number,NULL);
#endif
callername->SetText(name);
callername->SetAlign(TEXT_ALIGNMENT_CENTER);
char name_buf[30]={0};
- if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str()))
+ if(get_phone_addrss_name(name_buf,CallerLogModel::GetInstance()->GetPhoneNumber().c_str(),NULL))
{
diallabl2->SetText(name_buf);
}
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:fd8a757900d7490b0d4260452e36470867af3604554269256f99ee0ce0b43612
+size 1144
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:780f9fa26c2ee54ec5c22e1f31f71e4290cecedc623e655e8d82c32a9f98d561
+size 1896
CONFIGMODEL_ITEM_OPEN_AI_API_KEYS,//API Keys
CONFIGMODEL_ITEM_APPLIST_STYLE,//applist的显示样式
CONFIGMODEL_ITEM_BLE_IOS_OR_ANDROID,//绑定设备为安卓或者ios 0:安卓 1:苹果
+ CONFIGMODEL_ITEM_BR_PAIR,//br第一次绑定
CONFIGMODEL_ITEM_MAX,
{ConfigDataType::DATATYPE_STRING, "open_ai_api_keys", "-1" }, //CONFIGMODEL_ITEM_OPEN_AI_API_KEYS
{ConfigDataType::DATATYPE_STRING, "applist_style", "list" }, //CONFIGMODEL_ITEM_APPLIST_STYLE
{ConfigDataType::DATATYPE_INT, "android_or_ios", "0" },//CONFIGMODEL_ITEM_BLE_IOS_OR_ANDROID
+ {ConfigDataType::DATATYPE_INT, "br_pari" , "0"},
};
ConfigModel(); // 私有构造函数,确保无法在外部实例化
ConfigModel(const ConfigModel &) = delete; // 禁止拷贝构造