解决在长亮屏界面查找手表后错误取消该界面的常亮屏操作。 1507/4 1507/head
authorluozheng <1732036298@qq.com>
Tue, 10 Dec 2024 08:45:40 +0000 (16:45 +0800)
committerluozheng <1732036298@qq.com>
Tue, 10 Dec 2024 08:45:40 +0000 (16:45 +0800)
code/sdk/application/wearable/service/msg_center/src/notify/findwatch_notification.cpp

index ac59001..0072bb4 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-25 17:33:47
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-12-05 15:18:11
+ * @LastEditTime: 2024-12-10 15:03:45
  * @FilePath: /FD230/code/sdk/application/wearable/service/msg_center/src/notify/findwatch_notification.cpp
  * @details:实现查找手表的功能一般需要手表和智能手机之间的配合,通常是通过手机上的应用(App)或其他设备发送指令给手表,触发手表的查找功能。
  * 以下是基本的实现步骤:
@@ -46,6 +46,7 @@ namespace OHOS
 {
     UIViewGroup *FindWatchGroupView{nullptr};
     UIButton *FindWatchButton{nullptr};
+    uint8_t pre_screen_status = 0;//屏幕之前的状态之前
     FindWatchViewEventListener::FindWatchViewEventListener()
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "FindWatchViewEventListener::FindWatchViewEventListener");
@@ -472,7 +473,12 @@ namespace OHOS
 
         FindWatchViewEventListener::GetInstance().FindWatch_StartTimer(700);
         FindWatchViewEventListener::GetInstance().SetScreenBrightness();
-        ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
+
+        pre_screen_status = uapi_dev_runtime_get_screen_always_on_status();//获取查找手表之前是否是长亮屏状态
+        if(!pre_screen_status)
+        {
+            ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
+        }
 
         NotificationManager::GetInstance()->RegisterNotifyCleanupFunction(FreeFindWatchView);
         return FindWatchGroupView;
@@ -499,7 +505,7 @@ namespace OHOS
         FindWatchViewEventListener::GetInstance().FindWatchRingPlayStop();
         FindWatchViewEventListener::GetInstance().ResumeScreenBrightness();
         FindWatchViewEventListener::GetInstance().FindWatch_StopTimer();
-        if(OHOS::AiVoiceModel::GetInstance().get_screen60s_timer_is_stop()) //如果在AI界面查找手表且60s的常亮屏定时器不在,可以取消常亮屏
+        if(!pre_screen_status) //如果查找手表之前不是长亮屏状态,就取消查找手表设置的常亮屏
         {
             ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
         }