梳理定位逻辑,修改部分变量名,让逻辑更清晰
authorSnickerSun <scy@incartech.cn>
Wed, 25 Aug 2021 10:54:38 +0000 (18:54 +0800)
committerSnickerSun <scy@incartech.cn>
Wed, 25 Aug 2021 10:54:38 +0000 (18:54 +0800)
app/src/main/java/com/ic/protocolSrv/Config.java
app/src/main/java/com/ic/protocolSrv/CoreService.java
app/src/main/java/com/ic/protocolSrv/LocationClient.java
app/src/main/java/com/ic/protocolSrv/NMEAListener.java
app/src/main/java/com/ic/protocolSrv/bean/ICLocation.java
app/src/main/java/com/ic/protocolSrv/toolActivity.java

index 22207b6..23394a0 100644 (file)
@@ -44,7 +44,7 @@ public class Config {
 
     public static boolean enableDataRoaming = false;
 
-    public static boolean forceMoveCheck = true;
+    public static boolean forceGPSMoveCheck = true;
     public static boolean forceWearCheck = true;
 
     private static final String KEYDurationOfVibration = "DurationVib";
@@ -920,7 +920,7 @@ public class Config {
             noTempSensor = false;
             L004_BroadCastActionStrip = true;
             enableDataRoaming = true;
-            Config.forceMoveCheck = false; //即爱对gps不进行运动检测,此变量专门为了给其他协议进行强制运动检测用的。
+            Config.forceGPSMoveCheck = false; //即爱对gps不进行运动检测,此变量专门为了给其他协议GPS进行强制运动检测用的。
 
         } else if (Config.custom_name.equals("l005")) {
             ConfigAlarm(Runtime.AlarmType.ALARM_CUTOFF, true);
@@ -942,7 +942,7 @@ public class Config {
             noTempSensor = true;
             L004_BroadCastActionStrip = true;
             enableDataRoaming = true;
-            forceMoveCheck = false; //即爱对gps不进行运动检测,此变量专门为了给其他协议进行强制运动检测用的。
+            forceGPSMoveCheck = false; //即爱对gps不进行运动检测,此变量专门为了给其他协议进行强制运动检测用的。
         } else if (custom_name.equals("YQ") || custom_name.equals("YQ_EN")) {
             ConfigAlarm(Runtime.AlarmType.ALARM_CUTOFF, true);
             ConfigAlarm(Runtime.AlarmType.ALARM_ILLEGAL_CUTOFF, true);
@@ -1015,7 +1015,7 @@ public class Config {
             ConfigAlarm(Runtime.AlarmType.ALARM_LOCK_WATCH, true);
             ConfigAlarm(Runtime.AlarmType.ALARM_WEARED, true);
             ConfigAlarm(Runtime.AlarmType.ALARM_ANTIOFF, true);
-            forceMoveCheck = false; //对定位不进行运动检测。
+            forceGPSMoveCheck = false; //对定位不进行运动检测。
 
             DefaultLocationMode = CUSTOM_MOD8_GPS;
             DefaultLocationCycle = 5 * 60;
@@ -1037,7 +1037,7 @@ public class Config {
         } else if (Config.custom_name.equals("L02") ||
                 Config.custom_name.equals("L03") ||
                 Config.custom_name.equals("L05")) { //L02
-            Config.forceMoveCheck = false; //即爱对gps不进行运动检测,此变量专门为了给其他协议进行强制运动检测用的。
+            Config.forceGPSMoveCheck = false; //即爱对gps不进行运动检测,此变量专门为了给其他协议进行强制运动检测用的。
             DefaultLocationMode = NORMAL_MOD;
             DefaultLocationCycle = 900;
             DefaultPPGTestCycleInMinutes = 0;
index d37f23f..ed53a48 100644 (file)
@@ -121,6 +121,7 @@ import static com.ic.protocolSrv.Constants.TEMP_ALARM;
 import static com.ic.protocolSrv.bean.ICLocation.CUSTOM_MOD;
 import static com.ic.protocolSrv.bean.ICLocation.CUSTOM_MOD8_GPS;
 import static com.ic.protocolSrv.bean.ICLocation.CUSTOM_MOD8_WIFI;
+import static com.ic.protocolSrv.bean.ICLocation.CUSTOM_MOD9_WIFI_FIRST;
 import static com.ic.protocolSrv.bean.ICLocation.EMERGNECY_MOD;
 import static com.ic.protocolSrv.bean.ICLocation.LOWPOWER_MOD;
 import static com.ic.protocolSrv.bean.ICLocation.NORMAL_MOD;
@@ -1623,6 +1624,7 @@ public class CoreService extends Service {
             case CUSTOM_MOD:
             case CUSTOM_MOD8_GPS:
             case CUSTOM_MOD8_WIFI:
+            case CUSTOM_MOD9_WIFI_FIRST:
                 cycle = runtime.getLocationInstance().getLocation_cycle();
                 break;
         }
index 28ad514..c0a251b 100644 (file)
@@ -925,11 +925,11 @@ public class LocationClient {
         updateStepCount();//update StepCount,保证每次定位前,计步数据是最新的。防止丢数据。
         //如果没有动,且超时。则跳过定位
         NoMoveTimeout = checkNoMoveTimeoutForBT();
-        ICLogger.i("BT NoMoveTimeout " + NoMoveTimeout + ", forceLocation=" + forceLocation + ", Config.forceMoveCheck=" + Config.forceMoveCheck + ", skipMoveCheck=" + skipMoveCheck);
+        ICLogger.i("BT NoMoveTimeout " + NoMoveTimeout + ", forceLocation=" + forceLocation + ", Config.forceGPSMoveCheck=" + Config.forceGPSMoveCheck + ", skipMoveCheck=" + skipMoveCheck);
 
         // 不强制定位 且 (WorkingMod 不是紧急模式 或者 强制进行移动检测),且 没有移动过
         if ((forceLocation != 1) &&
-                (Config.forceMoveCheck == true) &&
+                (Config.forceGPSMoveCheck == true) &&
                 (NoMoveTimeout) && (skipMoveCheck == false)) {
             ICLogger.i("No Move ,skip BT location!");
 
@@ -944,11 +944,11 @@ public class LocationClient {
         updateStepCount();//update StepCount,保证每次定位前,计步数据是最新的。防止丢数据。
         //如果没有动,且超时。则跳过定位
         NoMoveTimeout = checkNoMoveTimeout();
-        ICLogger.i(" NoMoveTimeout " + NoMoveTimeout + ", forceLocation=" + forceLocation + ", Config.forceMoveCheck=" + Config.forceMoveCheck + ", skipMoveCheck=" + skipMoveCheck);
+        ICLogger.i(" NoMoveTimeout " + NoMoveTimeout + ", forceLocation=" + forceLocation + ", Config.forceGPSMoveCheck=" + Config.forceGPSMoveCheck + ", skipMoveCheck=" + skipMoveCheck);
 
         // 不强制定位 且 (WorkingMod 不是紧急模式 或者 强制进行移动检测),且 没有移动过
         if ((forceLocation != 1) &&
-                (Config.forceMoveCheck == true) &&
+                (Config.forceGPSMoveCheck == true) &&
                 (NoMoveTimeout) && (skipMoveCheck == false)) {
             ICLogger.i("No Move ,skip BT location2!");
 
@@ -967,12 +967,18 @@ public class LocationClient {
         }
         //如果没有动,且超时。则跳过定位
         NoMoveTimeout = checkNoMoveTimeout();
-        // 不强制定位 且 (WorkingMod 不是紧急模式 或者 强制进行移动检测),且 没有移动过
-        if ((forceLocation != 1) &&
-                (((mod == ICLocation.NORMAL_MOD) || (mod == ICLocation.LOWPOWER_MOD) || (mod == ICLocation.CUSTOM_MOD8_WIFI)) || Config.forceMoveCheck == true) &&
-                (NoMoveTimeout) && (skipMoveCheck == false)) {
-            ICLogger.i("No Move ,skip location!");
-            return;
+        /*
+        不强制定位(一次性强制取消移动检测用,定位后会恢复) &&
+         (( NORMAL_MOD , LOWPOWER_MOD, CUSTOM_MODE_WIFI  任意一种) || 强制移动检测(其它协议需GPS要强制移动检测用) ) &&
+         没有移动过 && 不跳过移动检测(其它协议所有项目都需要跳过移动检测时使用)
+         都满足才检测
+         */
+        if ( (forceLocation != 1) &&
+              (((mod == ICLocation.NORMAL_MOD) || (mod == ICLocation.LOWPOWER_MOD) || (mod == ICLocation.CUSTOM_MOD8_WIFI)) || Config.forceGPSMoveCheck) &&
+                (NoMoveTimeout) &&
+                (!skipMoveCheck)) {
+                ICLogger.i("No Move ,skip location!");
+                return;
         }
 
         if (NoMoveTimeout) {
index 8c38ad1..8149fc0 100644 (file)
@@ -87,6 +87,7 @@ public class NMEAListener implements NmeaListener, LocationListener {
                 case ICLocation.CUSTOM_MOD8_GPS:
                 case ICLocation.EMERGNECY_MOD:
                 case ICLocation.REALTIME_MOD:
+                case ICLocation.CUSTOM_MOD9_WIFI_FIRST:
                     //GPS 定位模式不关闭GPS,防止 1分钟定位超时后,重新关闭开启GPS。
                     //不给GPS继续定位的机会,造成第一次定位困难!
                     break;
index c877dde..52f73cf 100644 (file)
@@ -92,8 +92,9 @@ public class ICLocation {
     public static final int REALTIME_MOD = 3; //location rate 1 time per minutes
     public static final int EMERGNECY_MOD = 4; //location rate 1 time per minutes com.ic.work 5 minutes
     public static final int CUSTOM_MOD = 5; //location rate 1 time per minutes
-    public static final int CUSTOM_MOD8_GPS = 8; //location rate 1 time per minutes
-    public static final int CUSTOM_MOD8_WIFI = 9; //location rate 1 time per minutes
+    public static final int CUSTOM_MOD8_GPS = 8; //location  GPS first + WiFi + LBS
+    public static final int CUSTOM_MOD8_WIFI = 9; //location WiFi + LBS only
+    public static final int CUSTOM_MOD9_WIFI_FIRST = 10; //location rate 1 time per minutes
 
     private int mworkingMod;
     private int location_cycle;
index 9c17e8b..1ac0306 100644 (file)
@@ -155,13 +155,13 @@ public class toolActivity extends Activity {
         btnSlog.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if(Config.forceMoveCheck)
+                if(Config.forceGPSMoveCheck)
                 {
-                    Config.forceMoveCheck=false;
+                    Config.forceGPSMoveCheck=false;
                 }else{
-                    Config.forceMoveCheck=true;
+                    Config.forceGPSMoveCheck=true;
                 }
-                Util.ShowToast(CoreService.getInstance().runtime,"Set ForceMoveCheck "+ Config.forceMoveCheck);
+                Util.ShowToast(CoreService.getInstance().runtime,"Set forceGPSMoveCheck "+ Config.forceGPSMoveCheck);
             }
         });
         resizeSquare();