修復運動GPS的限制存儲
authorCaisking <Casiking@zhihuishixun.com>
Mon, 19 Jan 2026 09:41:44 +0000 (17:41 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Mon, 19 Jan 2026 09:41:44 +0000 (17:41 +0800)
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/include/TraingModel.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp

index 2527867..15382b0 100644 (file)
@@ -132,6 +132,9 @@ namespace OHOS {
 #define HIGH_INTENSITY_LOWER_THRESHOLD 70
 #define HIGH_INTENSITY_UPPER_THRESHOLD 79
 
+//最小运动时间
+
+
 #define MAXSPORTID 176
 
 // 运动状态
index 3c02823..e3b2d89 100644 (file)
@@ -834,6 +834,7 @@ void TraingModel::SetSportdata(SportData *data) {
      //更新gps点位
      GetPointData();
  
+     //存储运动数据
      do_custom_fileoperate_service_check_msg(
          CUSTOM_FILEOPERATE_MSG_TYPE_SPORTDATA_SAVE, nullptr, 0);
  
@@ -925,6 +926,7 @@ void TraingModel::SetSportdata(SportData *data) {
      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveSportData error!");
    }
  #else
+   //运动数据达标,存储运动数据
    if (MomentumFlag) {
      // GetGoaldegree(); // 设置目标完成度
      if (SaveSportData()) {
@@ -1488,29 +1490,37 @@ void TraingModel::SetSportdata(SportData *data) {
  bool TraingModel::GetSportOpenState() { return Openstate; }
  /*获取运动时长*/
  uint32_t TraingModel::GetSportTime() { return sportdata->duration; }
- /*获取训练量是否达标*/
- bool TraingModel::GetMomentum() {
- #if 0
-          int caldata = TraingModel::GetInstance()->GetCal();
-          /*判断是否产生至少1Kcald的运动量*/
-          if (caldata >= 1)
-          {
-              MomentumFlag = true;
-          }
-          else
-          {
-              MomentumFlag = false;
-          }
- #endif
-   int duration = sportdata->duration;
-   //判断运动时间是否大于1分钟
-   if (duration >= 60) {
-     MomentumFlag = true;
-   } else {
-     MomentumFlag = false;
-   }
-   return MomentumFlag;
- }
+/*获取训练量是否达标*/
+bool TraingModel::GetMomentum() {
+#if 0
+         int caldata = TraingModel::GetInstance()->GetCal();
+         /*判断是否产生至少1Kcald的运动量*/
+         if (caldata >= 1)
+         {
+             MomentumFlag = true;
+         }
+         else
+         {
+             MomentumFlag = false;
+         }
+#endif
+  int duration = sportdata->duration;
+  //判断运动时间是否大于1分钟
+  if (duration >= 60) {
+    MomentumFlag = true;
+  } else {
+    MomentumFlag = false;
+  }
+  
+  // 如果是需要GPS定位的运动,需要判断移动距离是否大于100m,不然轨迹可能异常
+  if (IsNeedGPS(sportdata->sportId)) {
+    if (sportdata->distance < 100) {
+      MomentumFlag = false;
+    }
+  }
+  
+  return MomentumFlag;
+}
  
  //用户运动数据配置
  void TraingModel::SetUserSportdata() {