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