修改了强制定位的逻辑
authorTrillGates <williamtrillgates@gmail.com>
Thu, 28 Oct 2021 06:57:29 +0000 (14:57 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Thu, 28 Oct 2021 06:57:29 +0000 (14:57 +0800)
app/src/main/java/com/enqualcomm/support/LocationClient.java

index ed5c2f0..fa998aa 100644 (file)
@@ -916,15 +916,16 @@ public class LocationClient {
     private boolean needLocationForBT() {
         updateStepCount();//update StepCount,保证每次定位前,计步数据是最新的。防止丢数据。
         //如果没有动,且超时。则跳过定位
-        mNoMoveTimeout = checkNoMoveTimeoutForBT();
+        if (skipMoveCheck || Config.GpsForceMoveCheck) {
+            mNoMoveTimeout = false;
+        } else {
+            mNoMoveTimeout = checkNoMoveTimeoutForBT();
+        }
         ICLogger.i("BT NoMoveTimeout " + mNoMoveTimeout + ", forceLocation=" + forceLocation + ", Config.GpsForceMoveCheck=" + Config.GpsForceMoveCheck + ", skipMoveCheck=" + skipMoveCheck);
 
         // 不强制定位 且 (WorkingMod 不是紧急模式 或者 强制进行移动检测),且 没有移动过
-        if ((forceLocation != 1) &&
-                (Config.GpsForceMoveCheck == true) &&
-                (mNoMoveTimeout) && (skipMoveCheck == false)) {
+        if ((forceLocation != 1) && mNoMoveTimeout) {
             ICLogger.i("No Move ,skip BT location!");
-
             return false;
         }
         //以目前逻辑,每次检测必然跟随蓝牙扫描,因此可以在此直接更新上一次的计步次数,配合下次的运动检测
@@ -935,15 +936,16 @@ public class LocationClient {
     private boolean needLocation() {
         updateStepCount();//update StepCount,保证每次定位前,计步数据是最新的。防止丢数据。
         //如果没有动,且超时。则跳过定位
-        mNoMoveTimeout = checkNoMoveTimeout();
+        if (skipMoveCheck || Config.GpsForceMoveCheck) {
+            mNoMoveTimeout = false;
+        } else {
+            mNoMoveTimeout = checkNoMoveTimeout();
+        }
         ICLogger.i(" NoMoveTimeout " + mNoMoveTimeout + ", forceLocation=" + forceLocation + ", Config.GpsForceMoveCheck=" + Config.GpsForceMoveCheck + ", skipMoveCheck=" + skipMoveCheck);
 
         // 不强制定位 且 (WorkingMod 不是紧急模式 或者 强制进行移动检测),且 没有移动过
-        if ((forceLocation != 1) &&
-                (Config.GpsForceMoveCheck == true) &&
-                (mNoMoveTimeout) && (skipMoveCheck == false)) {
+        if ((forceLocation != 1) && mNoMoveTimeout) {
             ICLogger.i("No Move ,skip BT location2!");
-
             return false;
         }
         //只做正常定位前是否运动的判断,给定位前蓝牙扫描专用的。和 NeedlocationFotBT 还不同。