release V400
authorsnickersun <scy@incartech.cn>
Sat, 11 Apr 2020 10:33:17 +0000 (18:33 +0800)
committersnickersun <scy@incartech.cn>
Sat, 11 Apr 2020 10:33:17 +0000 (18:33 +0800)
1、修复AP02 WiFi数据格式问题。
2、减小wifi等待时间,从20秒改为12秒。
3、优化GPS取消操作,wifi关闭操作流程。
把部分可能造成延迟的操作delay处理,把可能造成mainthread阻塞的函数直接在线程调用。

app/release/ICSer_V399_2004111627_release.apk [deleted file]
app/release/ICSer_V400_2004111828_release.apk [new file with mode: 0644]
app/src/main/java/com/enqualcomm/support/Config.java
app/src/main/java/com/enqualcomm/support/LocationClient.java
app/src/main/java/com/enqualcomm/support/NMEAListener.java
app/src/main/java/com/enqualcomm/support/adapter/LBSHelper.java
app/src/main/java/com/enqualcomm/support/adapter/protocolAPIHelper.java
app/src/main/java/com/enqualcomm/support/bean/Runtime.java
app/version_code.properties

diff --git a/app/release/ICSer_V399_2004111627_release.apk b/app/release/ICSer_V399_2004111627_release.apk
deleted file mode 100644 (file)
index 95e423f..0000000
Binary files a/app/release/ICSer_V399_2004111627_release.apk and /dev/null differ
diff --git a/app/release/ICSer_V400_2004111828_release.apk b/app/release/ICSer_V400_2004111828_release.apk
new file mode 100644 (file)
index 0000000..efd95ec
Binary files /dev/null and b/app/release/ICSer_V400_2004111828_release.apk differ
index e5a6c3c..d7acd18 100644 (file)
@@ -32,6 +32,10 @@ public class Config {
   public static final String DefaultWiFiSSID="Xplay6";\r
   public static final String DefaultWiFiPWD="87654321";\r
   public static final String DefaultWiFiEncryptType="psk";\r
+\r
+  public static final int GPSLocationTimeoutInSeconds=50;\r
+  public static final int WiFiLocationTimeoutInSeconds=12;\r
+\r
   static  {\r
   \r
   }\r
index 038d197..8c91a44 100644 (file)
@@ -46,6 +46,8 @@ import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;\r
 \r
 import static android.location.LocationManager.GPS_PROVIDER;\r
+import static com.enqualcomm.support.Config.GPSLocationTimeoutInSeconds;\r
+import static com.enqualcomm.support.Config.WiFiLocationTimeoutInSeconds;\r
 import static com.enqualcomm.support.Constants.ACTION_CHECK_LOCATION_RESULT;\r
 import static com.enqualcomm.support.Constants.HEART_ALARM;\r
 \r
@@ -238,11 +240,12 @@ public class LocationClient {
         if(Config.LOG_TOFILE) ICLogger.logToFile("GPS","开启GPS扫描!");\r
         if (!nmeaListener.isListening()) {\r
           runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_OPEN); //此处为了检测是否定位时可以正确识别状态,以防一直处于GPS定位成功状态\r
-          Single.just(null).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Object>() {\r
-            public void call(Object param1Object) {\r
-              nmeaListener.startListen();\r
-            }\r
-          });\r
+//          Single.just(null).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Object>() {\r
+//            public void call(Object param1Object) {\r
+//              nmeaListener.startListen();\r
+//            }\r
+//          });\r
+          nmeaListener.startListen();\r
 \r
         } else {\r
           ICLogger.i("GPS is still listening, skip open it!");\r
@@ -329,7 +332,7 @@ public class LocationClient {
 \r
 \r
             //GPS 优先的话多给些时间(10秒)\r
-            if (checktimes> 50 )\r
+            if (checktimes> GPSLocationTimeoutInSeconds )\r
             {\r
               ICLogger.i("waitAndSendLocation "+checktimes+" timeout");\r
               timeout=true;\r
@@ -399,7 +402,7 @@ public class LocationClient {
           default:\r
             //wifi优先的话给20秒时间\r
 \r
-            if (checktimes> 20 )\r
+            if (checktimes> WiFiLocationTimeoutInSeconds )\r
             {\r
               ICLogger.i("waitAndSendLocation "+checktimes+" timeout");\r
               timeout=true;\r
@@ -494,21 +497,18 @@ public class LocationClient {
 \r
 //  public void EqcAlgorithmInterfaceMethod3() {\r
   public void stopGpsLocate() {\r
-//    if (Deliver.is_active_location) {\r
-//      Deliver.is_active_location = false;\r
-//      getLocationWakeLock();\r
-//    }\r
 \r
     boolean FactryModeOpening=DeviceInfoUtil.isFactoryTestTopActivity(runtime.getContextProxy().context);\r
     //防止与工厂测试冲突\r
     if (FactryModeOpening==false ) {\r
       ICLogger.i("stopGpsLocate");\r
       if(Config.LOG_TOFILE) ICLogger.logToFile("GPS","stopGpsLocate");\r
-      Single.just(null).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Object>() {\r
-        public void call(Object param1Object) {\r
-          nmeaListener.stopListen();\r
-        }\r
-      });\r
+      nmeaListener.stopListen();\r
+//      Single.just(null).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Object>() {\r
+//        public void call(Object param1Object) {\r
+//          nmeaListener.stopListen();\r
+//        }\r
+//      });\r
     }else{\r
       ICLogger.i("工厂模式 skip stopGpsLocate");\r
       runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_OPEN); //此处为了检测是否定位时可以正确识别状态,以防一直处于GPS定位成功状态\r
index d49dd2c..be34aa4 100644 (file)
@@ -576,10 +576,15 @@ public class NMEAListener implements NmeaListener, LocationListener {
   public void stopListen() {\r
     this.locationManager.removeNmeaListener(this);\r
     this.locationManager.removeUpdates(this);\r
-    this.listening = false;\r
     ICLogger.i("stopListen 定位 ");\r
-    if( Config.LOG_TOFILE)ICLogger.logToFile("GPS","stopListen 定位 ");\r
-    Settings.Secure.setLocationProviderEnabled(runtime.getContextProxy().getResolver(), GPS_PROVIDER, false);\r
+    if (Config.LOG_TOFILE) ICLogger.logToFile("GPS", "stopListen 定位 ");\r
+    if (listening==true) {\r
+       this.listening = false;\r
+      Settings.Secure.setLocationProviderEnabled(runtime.getContextProxy().getResolver(), GPS_PROVIDER, false);\r
+      ICLogger.i("stopListen 定位 done ");\r
+    }else{\r
+      ICLogger.i("stopListen 定位 already stop skip stopListen");\r
+    }\r
 \r
   }\r
 \r
index e66fab5..5208662 100644 (file)
@@ -25,6 +25,7 @@ import android.telephony.gsm.GsmCellLocation;
 \r
 import com.enqualcomm.support.Config;\r
 import com.enqualcomm.support.bean.Runtime;\r
+import com.enqualcomm.support.service.Deliver;\r
 import com.enqualcomm.support.utils.CellInfoUtil;\r
 import com.enqualcomm.support.utils.DeviceInfoUtil;\r
 import com.enqualcomm.support.utils.FileOutputUtil;\r
@@ -35,6 +36,10 @@ import java.util.Collections;
 import java.util.Comparator;\r
 import java.util.Iterator;\r
 import java.util.List;\r
+import java.util.concurrent.TimeUnit;\r
+\r
+import rx.Observable;\r
+import rx.functions.Action1;\r
 \r
 import static android.net.wifi.WifiManager.WIFI_STATE_DISABLED;\r
 import static android.net.wifi.WifiManager.WIFI_STATE_DISABLING;\r
@@ -127,22 +132,34 @@ public class LBSHelper {
         }\r
         if (mMyWifiListener != null) {\r
             mMyWifiListener.getWifiInfoCallBack(wifiInfoResult);\r
-\r
-            //由于wifi状态不好确认客户是如何设置的,干脆只有屏幕灭的时候才考虑关闭wifi ,防止在开启屏幕用来视频的时候被后台关掉\r
-            if(SimSignalUtil.isScreenON(runtime.getContextProxy().context)==false) {\r
-                if (runtime.isNoTurnOffWifiOnScreenOff() || DeviceInfoUtil.isFactoryTestTopActivity(runtime.getContextProxy().context)) {\r
-                    //如果 NoTurnOffWifiOnScreenOff 开关 开启,且是屏灭,或者是在工厂测试模式,则原来什么状态就什么状态。\r
-                    if (!IS_HASOPEN && IS_OPEN) {\r
-                        wifiManager.setWifiEnabled(false);\r
-                        IS_OPEN = false;\r
+//            mMyWifiListener.getWifiInfoCallBack(null);\r
+            Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
+                public void call(Long param1Long) {\r
+                    //由于wifi状态不好确认客户是如何设置的,干脆只有屏幕灭的时候才考虑关闭wifi ,防止在开启屏幕用来视频的时候被后台关掉\r
+                    ICLogger.i("setWifiEnabled false");\r
+                    if(SimSignalUtil.isScreenON(runtime.getContextProxy().context)==false) {\r
+                        if (runtime.isNoTurnOffWifiOnScreenOff() || DeviceInfoUtil.isFactoryTestTopActivity(runtime.getContextProxy().context)) {\r
+                            //如果 NoTurnOffWifiOnScreenOff 开关 开启,且是屏灭,或者是在工厂测试模式,则原来什么状态就什么状态。\r
+                            if (!IS_HASOPEN && IS_OPEN) {\r
+                                 wifiManager.setWifiEnabled(false);\r
+                                IS_OPEN = false;\r
+                            }\r
+                        } else if (!runtime.isNoTurnOffWifiOnScreenOff()) {\r
+                            //如果 NoTurnOffWifiOnScreenOff 开关 关闭,且是屏灭,则关闭wifi省电\r
+                            wifiManager.setWifiEnabled(false);\r
+                            IS_OPEN = false;\r
+                            IS_HASOPEN = false;\r
+\r
+                        }\r
                     }\r
-                } else if (!runtime.isNoTurnOffWifiOnScreenOff()) {\r
-                    //如果 NoTurnOffWifiOnScreenOff 开关 关闭,且是屏灭,则关闭wifi省电\r
-                    wifiManager.setWifiEnabled(false);\r
-                    IS_OPEN = false;\r
-                    IS_HASOPEN = false;\r
+                    ICLogger.i("setWifiEnabled done");\r
+\r
+\r
+\r
                 }\r
-            }\r
+\r
+            });\r
+\r
         }else{\r
             ICLogger.i("mMyWifiListener is null skip callback");\r
         }\r
@@ -156,24 +173,24 @@ public class LBSHelper {
         } else {\r
             this.sortByLevel(aplist);\r
             StringBuilder sb = new StringBuilder("");\r
+            StringBuilder sbAP02 = new StringBuilder("");\r
             StringBuilder sblog = new StringBuilder("");\r
             Iterator it = aplist.iterator();\r
             int count = 0;\r
-\r
             while (it.hasNext()) {\r
-                ScanResult var5 = (ScanResult) it.next();\r
-                if (var5.level != 0) {\r
+                ScanResult result = (ScanResult) it.next();\r
+                if (result.level != 0) {\r
                     count ++;\r
                     if (count < 6) {\r
                         sb.append("&");\r
                         sb.append("AP");\r
                         sb.append(count);\r
                         sb.append("|");\r
-                        sb.append(var5.BSSID);\r
+                        sb.append(result.BSSID);\r
                         sb.append("|");\r
-                        sb.append(var5.level);\r
+                        sb.append(result.level);\r
                     }\r
-                    sblog.append("[").append(count).append(",SSID:").append(var5.SSID).append(",BSSID:").append(var5.BSSID).append(",Level:").append(var5.level).append("];");\r
+                    sblog.append("[").append(count).append(",SSID:").append(result.SSID).append(",BSSID:").append(result.BSSID).append(",Level:").append(result.level).append("];");\r
                 }\r
             }\r
             if (sb.toString().startsWith("&"))  sb.deleteCharAt(0);\r
index e3933c4..bbb8045 100644 (file)
@@ -401,11 +401,20 @@ public class protocolAPIHelper {
 //        9520|3671|10: LAC|CID|dbm表示一组基站信息,后面数量需和基站组数地应  10:dbm为信号强度多基站信号强度建议从高到低排列后上传,信号强度转正数:150 – abs(dbm)\r
 //        4: 表示WIFI组数,\r
 //                1|D8-24-BD-79-FA-1F|59: ssid|mac地址|信号强度,信号强度转正数:150 – abs(信号强度)\r
+\r
+        int apsum=0;\r
+        String wifiinfo=ds.getWifiInfo();\r
+        if (!wifiinfo.isEmpty()) {\r
+            String[] list = wifiinfo.split("&");\r
+            apsum = list.length;\r
+        }\r
+\r
+        ICLogger.i("Wifi ap sum "+apsum);\r
         return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT)\r
                 .append(ds.getLanguage()).append(CMDSPLIT)\r
                 .append(0).append(CMDSPLIT) //为0时不回复地址\r
                 .append(ds.getLBSMultiStationData()).append(CMDSPLIT)  //基站信息数据\r
-                .append(4).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString();  //wifi信息数据\r
+                .append(apsum).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString();  //wifi信息数据\r
     }\r
 \r
     //处理 定位 BP01\r
index 38c9aa9..14844a3 100644 (file)
@@ -417,7 +417,7 @@ public class Runtime {
 \r
   public Runtime() {\r
     if (gpsp == null) gpsp = new ICLocation();\r
-  }\r
+    }\r
 \r
   public ICLocation getLocationInstance(){\r
     return gpsp;\r
index 7009760..ede9f36 100644 (file)
@@ -1,2 +1,2 @@
-#Sat Apr 11 16:27:31 CST 2020\r
-VERSION_CODE=399\r
+#Sat Apr 11 18:28:43 CST 2020\r
+VERSION_CODE=400\r