From 2ff054de3ec5ce9511ff56d9a1417ccc1e7268e5 Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Wed, 28 Aug 2024 19:08:14 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8D=E5=AF=86=E7=A0=81=E9=94=81?= =?utf8?q?=E9=80=9A=E8=BF=87=E8=93=9D=E7=89=99=E8=A7=A3=E9=94=81=E8=BF=9B?= =?utf8?q?=E8=A1=8C=E7=8A=B6=E6=80=81=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../codedlock/include/CodedLockModel.h | 8 ++++++ .../nativeui/codedlock/src/CodedLockModel.cpp | 26 +++++++++++++++++++ .../service/ble_service/blemoder/bletest.cpp | 6 +++++ 3 files changed, 40 insertions(+) diff --git a/code/sdk/application/wearable/fd230app/nativeui/codedlock/include/CodedLockModel.h b/code/sdk/application/wearable/fd230app/nativeui/codedlock/include/CodedLockModel.h index 76e12d73e..995b85ccd 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/codedlock/include/CodedLockModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/codedlock/include/CodedLockModel.h @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-08-21 15:27:38 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-08-28 18:32:09 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/codedlock/include/CodedLockModel.h + */ #ifndef CODEDLOCKMODEL_H #define CODEDLOCKMODEL_H @@ -33,6 +39,8 @@ namespace OHOS uint8_t GetPointNum(); // 配置用户密码 void SetUserPassWord(const std::string &password); + // ble进行解锁 + void BleUnlock(); private: CodedLockModel(); diff --git a/code/sdk/application/wearable/fd230app/nativeui/codedlock/src/CodedLockModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/codedlock/src/CodedLockModel.cpp index 25c7d8d25..40175f14a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/codedlock/src/CodedLockModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/codedlock/src/CodedLockModel.cpp @@ -1,9 +1,13 @@ #include "codedlock/include/CodedLockModel.h" +#include "MainViewSample.h" +#include "codedlock/include/CodedLockView.h" #include #include #include "wearable_log.h" #include "string.h" #include "ConfigModel.h" + +extern "C" void uapi_dev_runtime_set_lock_status(uint8_t status); namespace OHOS { /** @@ -185,4 +189,26 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "密码为空"); } } + + /** + * @brief 更新用户状态 + */ + void CodedLockModel::BleUnlock() + { + // 先进行解锁 + uapi_dev_runtime_set_lock_status(0); + /*设置表盘状态*/ + MainModel::GetInstance().setDialState(DialState::LOCK, false); + + // 获取当前活动视图的实例 + auto mainViewInstance = MainViewSample::GetInstance(); + auto codedLockViewInstance = CodedLockView::GetInstance(); + + // 如果是在主界面或密码锁界面,重新进入主界面 + if (mainViewInstance != nullptr || codedLockViewInstance != nullptr) + { + NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN); + } + } + } \ No newline at end of file diff --git a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp index 7db379f46..99d68d6db 100644 --- a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp +++ b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp @@ -615,6 +615,12 @@ void ble_set_password(uint8_t falg, char * data) printf("设置手表密码 %d %s \r\n",falg, data); /*更新model密码配置*/ + if(falg == 0) + { + //更新手表状态 + GraphicService::GetInstance()->PostGraphicEvent( + std::bind(&OHOS::CodedLockModel::BleUnlock, OHOS::CodedLockModel::GetInstance())); + } OHOS::CodedLockModel::GetInstance()->SetUserPassWord(data); return; -- 2.17.1