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
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
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
\r
\r
//GPS 优先的话多给些时间(10秒)\r
- if (checktimes> 50 )\r
+ if (checktimes> GPSLocationTimeoutInSeconds )\r
{\r
ICLogger.i("waitAndSendLocation "+checktimes+" timeout");\r
timeout=true;\r
default:\r
//wifi优先的话给20秒时间\r
\r
- if (checktimes> 20 )\r
+ if (checktimes> WiFiLocationTimeoutInSeconds )\r
{\r
ICLogger.i("waitAndSendLocation "+checktimes+" timeout");\r
timeout=true;\r
\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
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
\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
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
}\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
} 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
// 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
\r
public Runtime() {\r
if (gpsp == null) gpsp = new ICLocation();\r
- }\r
+ }\r
\r
public ICLocation getLocationInstance(){\r
return gpsp;\r
-#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