release ICProtocol81 V928
authorSnickerSun <scy@incartech.cn>
Wed, 8 Sep 2021 12:03:59 +0000 (20:03 +0800)
committerSnickerSun <scy@incartech.cn>
Wed, 8 Sep 2021 12:03:59 +0000 (20:03 +0800)
优化定位逻辑。解决个别条件会造成无数据上传问题

app/release/ICProtocol8.1_V928_2109081956_release.apk [moved from app/release/ICProtocol8.1_V927_2109071837_release.apk with 78% similarity]
app/release/output.json
app/src/main/java/com/ic/protocolSrv/Config.java
app/src/main/java/com/ic/protocolSrv/LocationClient.java
app/version_code.properties

similarity index 78%
rename from app/release/ICProtocol8.1_V927_2109071837_release.apk
rename to app/release/ICProtocol8.1_V928_2109081956_release.apk
index f3a6b9f..53a54a0 100644 (file)
Binary files a/app/release/ICProtocol8.1_V927_2109071837_release.apk and b/app/release/ICProtocol8.1_V928_2109081956_release.apk differ
index 2abbccb..0653acd 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":927,"versionName":"2109071837","enabled":true,"outputFile":"ICProtocol8.1_V927_2109071837_release.apk","fullName":"release","baseName":"release"},"path":"ICProtocol8.1_V927_2109071837_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":928,"versionName":"2109081956","enabled":true,"outputFile":"ICProtocol8.1_V928_2109081956_release.apk","fullName":"release","baseName":"release"},"path":"ICProtocol8.1_V928_2109081956_release.apk","properties":{}}]
\ No newline at end of file
index 0ed42ff..3102544 100644 (file)
@@ -71,7 +71,7 @@ public class Config {
     public static String DefaultWiFiEncryptType = "psk";
 
     public static final int GPSLocationTimeoutInSeconds = 50;
-    public static final int WiFiLocationTimeoutInSeconds = 6;
+    public static final int WiFiLocationTimeoutInSeconds = 12;
 
     public static boolean sendSOSAtOnce = false;
     public static String c43_branch_name = "none";
index 2dd784d..4a87fe2 100644 (file)
@@ -609,20 +609,21 @@ public class LocationClient {
             case ICLocation.EMERGNECY_MOD:
             case ICLocation.REALTIME_MOD: {
                 //GPS 优先的话多给些时间(10秒)
-                if (checktimes > GPSLocationTimeoutInSeconds) {
-                    ICLogger.i("waitAndSendLocation " + checktimes + " timeout");
+                timeCost = System.currentTimeMillis() - startCheckTime;
+
+                if ((checktimes > WiFiLocationTimeoutInSeconds) || ((startCheckTime != 0L) && (timeCost > WiFiLocationTimeoutInSeconds *1000))) {
+                    ICLogger.i("waitAndSendLocation WiFi TimeOut " + checktimes + " > "+WiFiLocationTimeoutInSeconds + " or timeCost "+timeCost+"> "+WiFiLocationTimeoutInSeconds*1000+"ms ");
+                    wifi_timeout = true;
+                }
+                if ((checktimes > GPSLocationTimeoutInSeconds)  || ((startCheckTime != 0L) && (timeCost > GPSLocationTimeoutInSeconds*1000))) {
+                    //有时timer计数不准,则根据实际时间计算
+                    ICLogger.i("waitAndSendLocation " + checktimes + "> "+GPSLocationTimeoutInSeconds+" or timeCost "+timeCost+"> "+GPSLocationTimeoutInSeconds*1000+"ms ");
                     timeout = true;
                 }
                 if (NoMoveTimeout && (timeout || gps_nosignal)) {
                     //没有移动,GPS超时或者没信号都会给 计数 加 1
                     gpsTimeoutCountOnNoMove++;
                 }
-                timeCost = System.currentTimeMillis() - startCheckTime;
-                if ((startCheckTime != 0L) && (timeCost > 50 * 1000L)) {
-                    //有时timer计数不准,则根据实际时间计算
-                    ICLogger.i("waitAndSendLocation " + timeCost + "> 50000ms timeout");
-                    //timeout=true;
-                }
                 // lbs only +timeout, lbs+wifi+gpsNosignal, libs+ , lbs+gps+wifi, Timeout can override wifi and gps
                 if ((lbs_ok && timeout)
                         || (gps_ok)
@@ -638,6 +639,8 @@ public class LocationClient {
                     }
                     runtime.getLocationInstance().setLocationType(locationtype);
                     runtime.getLocationInstance().setLocationTime(TimeUtil.getSystemTime3());
+                    ICLogger.i("waitAndSendLocation startSOSLocation " + startSOSLocation +" or startNomalLocation "+startNomalLocation);
+
                     if (startSOSLocation) {
                         StringMessage AP10_CMD = protocolAPIHelper.getWarningMSG(runtime);
                         DeliverMessage(AP10_CMD);
@@ -647,10 +650,10 @@ public class LocationClient {
                     if (startNomalLocation = true) {
                         startNomalLocation = false;
                         if (gps_ok) {
-                            if (!TextUtils.isEmpty(runtime.getWifiInfo())) {
+//                            if (!TextUtils.isEmpty(runtime.getWifiInfo())) {
                                 StringMessage AP01_CMD = protocolAPIHelper.getGPSLocationMSG(runtime);
                                 DeliverMessage(AP01_CMD);
-                            }
+//                            }
                         } else {
                             StringMessage AP02_CMD = protocolAPIHelper.getLBSLocationMSG(runtime);
                             DeliverMessage(AP02_CMD);
@@ -669,7 +672,7 @@ public class LocationClient {
                     if (Config.LOG_TOFILE) {
                         ICLogger.logToFile("GPS", msg);
                     }
-                } else if (timeout) {
+                } else if ((timeout ||gps_nosignal) && !lbs_ok && wifi_timeout) {
                     //timeout + noLBS +noGPS
                     ICLogger.i("timeout no location  ");
                     stopCheckLocationResult();
@@ -680,31 +683,36 @@ public class LocationClient {
                 break;
             case ICLocation.CUSTOM_MOD9_WIFI_FIRST: {
                 //检测wifi和lbs先,成功则直接返回,失败则开启GPS
-                if (checktimes > WiFiLocationTimeoutInSeconds) {
-                    ICLogger.i("waitAndSendLocation " + checktimes + " WIFI Timeout start GPS location");
+
+                timeCost = System.currentTimeMillis() - startCheckTime;
+                //wifi扫描 检测次数到,或者实际时间到,都会触发 timeout事件,开启gps扫描。
+                if ((checktimes > WiFiLocationTimeoutInSeconds) || ((startCheckTime != 0L) && (timeCost > WiFiLocationTimeoutInSeconds *1000))) {
+                    ICLogger.i("waitAndSendLocation WiFi TimeOut " + checktimes + " > "+WiFiLocationTimeoutInSeconds + " or timeCost "+timeCost+"> "+WiFiLocationTimeoutInSeconds*1000+"ms ");
+                    if (!wifi_timeout)
+                    {
+                        startGpsLocate();
+                    }
                     wifi_timeout = true;
-                    startGpsLocate();
                 }
-                if (checktimes > GPSLocationTimeoutInSeconds) {
-                    ICLogger.i("waitAndSendLocation " + checktimes + " GPS timeout");
+                //WIFI First 会在完成 wifi 检测且没有 后再开始GPS测试。
+                if ((checktimes > (GPSLocationTimeoutInSeconds+WiFiLocationTimeoutInSeconds))  || ((startCheckTime != 0L) && (timeCost > (GPSLocationTimeoutInSeconds+WiFiLocationTimeoutInSeconds)*1000))) {
+                    //有时timer计数不准,则根据实际时间计算
+                    ICLogger.i("waitAndSendLocation GPS Timeout " + checktimes + "> "+(GPSLocationTimeoutInSeconds+WiFiLocationTimeoutInSeconds)+" or timeCost "+timeCost+"> "+GPSLocationTimeoutInSeconds*1000+"ms ");
                     timeout = true;
                 }
+
                 if (NoMoveTimeout && (timeout || gps_nosignal)) {
                     //没有移动,GPS超时或者没信号都会给 计数 加 1
                     gpsTimeoutCountOnNoMove++;
                 }
-                timeCost = System.currentTimeMillis() - startCheckTime;
-                if ((startCheckTime != 0L) && (timeCost > 50 * 1000L)) {
-                    //有时timer计数不准,则根据实际时间计算
-                    ICLogger.i("waitAndSendLocation " + timeCost + "> 50000ms timeout");
-                    //timeout=true;
-                }
+
                 // lbs only +timeout, lbs+wifi+gpsNosignal, libs+ , lbs+gps+wifi, Timeout can override wifi and gps
                 String locationtype = "LBS";
                 if (wifi_ok) {
                     locationtype = "WiFi";
                     runtime.getLocationInstance().setLocationType(locationtype);
                     runtime.getLocationInstance().setLocationTime(TimeUtil.getSystemTime3());
+                    ICLogger.i("waitAndSendLocation startSOSLocation " + startSOSLocation +" or startNomalLocation "+startNomalLocation);
                     if (startSOSLocation) {
                         StringMessage AP10_CMD = protocolAPIHelper.getWarningMSG(runtime);
                         DeliverMessage(AP10_CMD);
@@ -731,8 +739,6 @@ public class LocationClient {
                     if ((lbs_ok && timeout)
                             || (gps_ok)
                             || (lbs_ok && (gps_ok || startSOSLocation))
-                            || (lbs_ok && (gps_ok || startSOSLocation) && wifi_ok)
-                            || (lbs_ok && gps_nosignal && wifi_ok)
                     ) {
 
                         if (gps_ok) {
@@ -740,6 +746,7 @@ public class LocationClient {
                         }
                         runtime.getLocationInstance().setLocationType(locationtype);
                         runtime.getLocationInstance().setLocationTime(TimeUtil.getSystemTime3());
+                        ICLogger.i("waitAndSendLocation startSOSLocation " + startSOSLocation +" or startNomalLocation "+startNomalLocation);
                         if (startSOSLocation) {
                             StringMessage AP10_CMD = protocolAPIHelper.getWarningMSG(runtime);
                             DeliverMessage(AP10_CMD);
@@ -749,10 +756,10 @@ public class LocationClient {
                         if (startNomalLocation = true) {
                             startNomalLocation = false;
                             if (gps_ok) {
-                                if (!TextUtils.isEmpty(runtime.getWifiInfo())) {
+//                                if (!TextUtils.isEmpty(runtime.getWifiInfo())) {
                                     StringMessage AP01_CMD = protocolAPIHelper.getGPSLocationMSG(runtime);
                                     DeliverMessage(AP01_CMD);
-                                }
+//                                }
                             } else {
                                 StringMessage AP02_CMD = protocolAPIHelper.getLBSLocationMSG(runtime);
                                 DeliverMessage(AP02_CMD);
@@ -771,7 +778,7 @@ public class LocationClient {
                         if (Config.LOG_TOFILE) {
                             ICLogger.logToFile("GPS", msg);
                         }
-                    } else if (timeout) {
+                    } else if ((timeout ||gps_nosignal) && !lbs_ok) {
                         //timeout + noLBS +noGPS
                         ICLogger.i("timeout no location  ");
                         stopCheckLocationResult();
@@ -786,23 +793,20 @@ public class LocationClient {
             case ICLocation.CUSTOM_MOD8_WIFI:
             default: {
                 //wifi优先的话给20秒时间
-                if (checktimes > WiFiLocationTimeoutInSeconds) {
-                    ICLogger.i("waitAndSendLocation " + checktimes + " timeout");
-                    timeout = true;
-                }
                 timeCost = System.currentTimeMillis() - startCheckTime;
-                if ((startCheckTime != 0L) && (timeCost > 20 * 1000L)) {
-                    //有时timer计数不准,则根据实际时间计算
-                    ICLogger.i("waitAndSendLocation " + timeCost + "> 20000ms timeout");
-                    // timeout=true;
+                if ((checktimes > WiFiLocationTimeoutInSeconds) || ((startCheckTime != 0L) && (timeCost > WiFiLocationTimeoutInSeconds *1000))) {
+                    ICLogger.i("waitAndSendLocation WiFi TimeOut " + checktimes + " > "+WiFiLocationTimeoutInSeconds + " or timeCost "+timeCost+"> "+WiFiLocationTimeoutInSeconds*1000+"ms ");
+                    wifi_timeout = true;
                 }
-                if ((lbs_ok && timeout) || (lbs_ok && wifi_ok)) {
+
+                if ((lbs_ok && wifi_timeout) || (lbs_ok && wifi_ok)) {
                     String locationtype = "LBS";
                     if (wifi_ok) {
                         locationtype = "WiFi";
                     }
                     runtime.getLocationInstance().setLocationType(locationtype);
                     runtime.getLocationInstance().setLocationTime(TimeUtil.getSystemTime3());
+                    ICLogger.i("waitAndSendLocation startSOSLocation " + startSOSLocation +" or startNomalLocation "+startNomalLocation);
 
                     if (startSOSLocation) {
                         StringMessage AP10_CMD = protocolAPIHelper.getWarningMSG(runtime);
@@ -827,11 +831,11 @@ public class LocationClient {
                         ICLogger.logToFile("GPS", msg);
 
 
-                } else if (timeout == true) {
-                    ICLogger.i("timeout no location  ");
+                } else if (wifi_timeout && !lbs_ok) {
+                    ICLogger.i("WiFi timeout no location  ");
                     stopCheckLocationResult();
                     if (Config.LOG_TOFILE)
-                        ICLogger.logToFile("GPS", "timeout no location ");
+                        ICLogger.logToFile("GPS", "WiFi timeout no location ");
                 }
             }
                 break;
index 02cdc3d..b2c0774 100644 (file)
@@ -1,2 +1,2 @@
-#Tue Sep 07 18:37:40 CST 2021\r
-VERSION_CODE=927\r
+#Wed Sep 08 19:56:03 CST 2021\r
+VERSION_CODE=928\r