From: snickersun Date: Sat, 21 Mar 2020 09:23:15 +0000 (+0800) Subject: 1、修复 WiFi定位时有时BP16定位会不能返回wifi定位的情况。 X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=38286d1feb246570daff687497a3d9d130f4fc37;p=icsupport.git 1、修复 WiFi定位时有时BP16定位会不能返回wifi定位的情况。 2、修复屏幕亮起时,WiFi定位还是会关闭WiFi的bug,解决亮屏时不能通过WiFi进行Fota升级,以及将来的视频通话的问题。 --- diff --git a/app/src/main/java/com/enqualcomm/support/LocationClient.java b/app/src/main/java/com/enqualcomm/support/LocationClient.java index 6baeee47..8bac53f0 100644 --- a/app/src/main/java/com/enqualcomm/support/LocationClient.java +++ b/app/src/main/java/com/enqualcomm/support/LocationClient.java @@ -199,20 +199,27 @@ public class LocationClient { private static int checktimes=0; private static boolean timeout=false; private static boolean isLocating=false; - + private static boolean isWifiScanning=false; + LBSHelper.OnWiFiInfoListener wifiinfoListener=new LBSHelper.OnWiFiInfoListener() { + public void getWifiInfoCallBack(String param1String) { + ICLogger.i("get wifi scan Callback " + param1String); + LocationClient.mHasWifiResult=true; + runtime.setWifiinfo(param1String==null?"":param1String); + isWifiScanning=false; + } + }; public void startWifiScan(){ + + if (isWifiScanning==false) { ICLogger.i("开启wifi扫描"); + isWifiScanning=true; runtime.setWifiinfo(""); mHasWifiResult = false; -// this.mLbsHelper.registerWiFiBroadReceiver(); - this.mLbsHelper.setOnWiFiInfoListener(new LBSHelper.OnWiFiInfoListener() { - public void getWifiInfoCallBack(String param1String) { - ICLogger.i("get wifi scan Callback " + param1String); - LocationClient.mHasWifiResult=true; - runtime.setWifiinfo(param1String==null?"":param1String); - } - }); - this.mLbsHelper.getWifiInfo(); + this.mLbsHelper.setOnWiFiInfoListener(wifiinfoListener); + this.mLbsHelper.getWifiInfo(); + }else{ + ICLogger.i("wifi扫描进行中,skip开启"); + } } public void startGpsLocate() { 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 624b4ee8..4b54faff 100644 --- a/app/src/main/java/com/enqualcomm/support/adapter/LBSHelper.java +++ b/app/src/main/java/com/enqualcomm/support/adapter/LBSHelper.java @@ -79,6 +79,13 @@ public class LBSHelper { if (msg.what == MsgWhat_GetWifiResult) { //停止扫描 StringBuilder sb = handScanResults(); + if (sb != null){ + ICLogger.i("GetWifiScanResults "+sb.toString()); + if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", "GetWifiScanResults "+sb.toString()); + }else{ + ICLogger.i("GetWifiScanResults null"); + if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", "GetWifiScanResults null"); + } if (sb == null) { CurrentWiFiScanTimes++; if (CurrentWiFiScanTimes< MaxWiFiScanRetryTimes) { @@ -95,19 +102,23 @@ public class LBSHelper { if (mMyWifiListener != null) { mMyWifiListener.getWifiInfoCallBack(wifiInfoResult); - if (runtime.isNoTurnOffWifiOnScreenOff() || DeviceInfoUtil.isFactoryTestTopActivity(runtime.getContextProxy().context)) - { - //如果 NoTurnOffWifiOnScreenOff 开关 开启,且是屏灭,或者是在工厂测试模式,则原来什么状态就什么状态。 - if (!IS_HASOPEN && IS_OPEN) { + //由于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; + } + } 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; } + }else{ + ICLogger.i("mMyWifiListener is null skip callback"); } } } @@ -143,7 +154,7 @@ public class LBSHelper { } } if (sb.toString().startsWith("&")) sb.deleteCharAt(0); - return sb; + return sb; } } @@ -156,6 +167,7 @@ public class LBSHelper { } private void delayedStopScan() { + mHandler.removeMessages(MsgWhat_GetWifiResult); mHandler.sendEmptyMessageDelayed(MsgWhat_GetWifiResult,3000L); } @@ -209,7 +221,7 @@ public class LBSHelper { this.runtime.setCellinfo(gsmSb.toString()); this.runtime.setCdmaInfo(null); ICLogger.i("GsmCellLocation "+ gsmSb.toString()); - if (Config.LOG_TOFILE) FileOutputUtil.fileOutput(this.runtime.getCacheDir(), "LBS", gsmSb.toString()); + if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", gsmSb.toString()); List neighboringCell_list = telephonyManager.getNeighboringCellInfo(); if (neighboringCell_list != null && !neighboringCell_list.isEmpty()) { @@ -258,7 +270,7 @@ public class LBSHelper { this.runtime.setCellinfo(null); this.runtime.setCdmaInfo(cdmaSB.toString()); - if (Config.LOG_TOFILE) FileOutputUtil.fileOutput(this.runtime.getCacheDir(), "LBS", var8.toString()); + if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", var8.toString()); return cdmaSB.toString(); } diff --git a/app/src/main/java/com/enqualcomm/support/utils/CellInfoUtil.java b/app/src/main/java/com/enqualcomm/support/utils/CellInfoUtil.java index 021873db..47885d11 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/CellInfoUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/CellInfoUtil.java @@ -135,7 +135,8 @@ public class CellInfoUtil { stringBuilder.append(CellInfoUtil.BSSS); runtime.cellinfo = stringBuilder.toString(); // EqcAlgorithmNative.native_EqcAlgorithmMethod4(1, 0, CellInfoUtil.BSSS, CellInfoUtil.MCC, CellInfoUtil.MNC, CellInfoUtil.LAC, CellInfoUtil.CELL_ID); - if (Config.LOG_TOFILE) FileOutputUtil.fileOutput(mRuntime.getCacheDir(), "LBS", mRuntime.cellinfo); + if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", mRuntime.cellinfo); + CellInfoUtil.releaseWakeLock(mWakeLock); ICLogger.i(" setCurrentAttachCellInfo " + mCellInfo);