-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":660,"versionName":"2010152053","enabled":true,"outputFile":"ICSer_V660_2010152053_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V660_2010152053_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":661,"versionName":"2010161805","enabled":true,"outputFile":"ICSer_V661_2010161805_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V661_2010161805_release.apk","properties":{}}]
\ No newline at end of file
}\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_SOS);\r
//trigger AP10 报警定位\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
\r
if(Config.isAlarmTypeEnabled(Runtime.AlarmType.ALARM_SEDENTARY)){\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_SEDENTARY);\r
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
locationClient.triggerSOSLocationProcess();\r
}\r
}else{\r
if (this.mKeepAlive != null) {\r
if (connection.isServerConnected() && runtime.isServerProtocolConnected()) {\r
this.mKeepAlive.onHeartAlarm(this.connection, this.runtime);\r
+ ICLogger.i("triggerBLEProcess ");\r
locationClient.triggerBLEProcess();//每次心跳检测一次BLE\r
} else {\r
// if (this.mKeepAlive.is_retry_time_above_limit()) {\r
// ICLogger.i("自由锻炼中,跳过原有的循环定位!");\r
// return;\r
// }\r
+ ICLogger.i("triggerLocationProcess ");\r
locationClient.triggerLocationProcess();\r
\r
}\r
LocationClient locationClient=LocationClient.getInstance();\r
if (locationClient!=null){\r
locationClient.setLocationResponse(replayLocation);\r
+ ICLogger.i("triggerLocationProcess ");\r
locationClient.triggerLocationProcess();\r
}\r
}else if (sms.startsWith(ENCRYPED_HEADER+"#setLogSrv#=")&& sms.endsWith("#")) {\r
sendSMS(phonenumber, "set noLocationCycle false! and trigger one Location");\r
LocationClient locationClient=LocationClient.getInstance();\r
if (locationClient!=null){\r
+ ICLogger.i("triggerLocationProcess ");\r
locationClient.triggerLocationProcess();\r
}\r
}else if (strtmp.equalsIgnoreCase("true")){\r
public void OnScanFinished(ArrayList<String> btPairedScanResult, ArrayList<String> btNewScanResult) {\r
\r
if (btNewScanResult!=null && btNewScanResult.size() > 0) {\r
- ICLogger.i("found bt mac " + btNewScanResult.size() + " btMacList " + runtime.bleInfo.btMacList.size());\r
+ StringBuilder sb=new StringBuilder();\r
+ sb.append("found bt mac ").append(btNewScanResult.size() );\r
+ sb.append(" bounding BeaconMacList ").append(runtime.bleInfo.btMacList.size() );\r
+ for(String mac:runtime.bleInfo.btMacList){\r
+ sb.append(" ").append(mac);\r
+ }\r
+ ICLogger.i( sb.toString() );\r
boolean in_area = false;\r
try {\r
for (String mac : btNewScanResult) {\r
//只有上一次在区域内,这次出区域才需要报警\r
ICLogger.i("BT 不在区域内,且上次在区域内,报警!");\r
//如果需要报警定位,则强制进行sos定位,不能通过triggerSOS,因为函数中调用了BLEScan会造成循环调用\r
-\r
StringMessage AL_CMD = protocolAPIHelper.getWarningMSG(runtime);\r
DeliverMessage(AL_CMD);\r
-\r
-\r
}\r
}else{\r
ICLogger.i("BT 在区域内!");\r
DeliverMessage(AP01_CMD);\r
startSOSLocation=false;\r
}else {\r
- StringMessage AP01_CMD = protocolAPIHelper.getGPSLocationMSG(runtime);\r
- DeliverMessage(AP01_CMD);\r
+ //已经通过蓝牙定位,则清除 forceLocation=0\r
+ forceLocation=0;\r
+ StringMessage AP01_CMD = protocolAPIHelper.getGPSLocationMSG(runtime);\r
+ DeliverMessage(AP01_CMD);\r
}\r
}\r
}\r
\r
public void triggerSOSLocationProcess(){\r
\r
-\r
-\r
-\r
-\r
-\r
mhandler.sendEmptyMessage(msgWhat_StartSOSLocationProcess);\r
\r
}\r
});\r
}else if (msg.what == msgWhat_StartLocationProcess) {\r
if (runtime.bleInfo.btMacList.size() > 0) {\r
- //有蓝牙搜索要求则 先进行蓝牙扫描\r
- if (needLocationForBT())\r
- btHelper.scanBLE();\r
+ if(scanBLEOnly && btHelper.isBtscanning()){\r
+ //如果正在进行独立蓝牙扫描,则强制切换为正常扫描。\r
+ scanBLEOnly=false;\r
+ }else {\r
+ //有蓝牙搜索要求则 先进行蓝牙扫描\r
+ if (needLocationForBT())\r
+ btHelper.scanBLE();\r
+ }\r
} else {\r
//没有蓝牙搜索要求,就正常定位\r
startLocationProcess(runtime.getLocationInstance().getWorkingMod());\r
}else if (msg.what == msgWhat_StartBLEProcess){\r
if (runtime.bleInfo.btMacList.size() > 0) {\r
//有蓝牙搜索要求则 先进行蓝牙扫描\r
- scanBLEOnly=true;\r
-\r
- if (needLocationForBT())\r
- btHelper.scanBLE();\r
+ if (! btHelper.isBtscanning()) {\r
+ scanBLEOnly = true;\r
+ if (needLocationForBT())\r
+ btHelper.scanBLE();\r
+ }else{\r
+ ICLogger.i("BT Scanning skip ScanBLE only!");\r
+ }\r
}\r
}else if (msg.what == msgWhat_StartSOSLocationProcess){\r
\r
CellInfoUtil.getCellInfo(runtime.getContextProxy().getTelephonyManager(),runtime);\r
\r
if (runtime.bleInfo.btMacList.size() > 0) {\r
- //有蓝牙搜索要求则 先进行蓝牙扫描\r
- startSOSLocation=true;//启动SOS定位,为了快速响应,只要wifi定位即可。\r
- forceLocation=1;\r
- if (needLocationForBT())\r
- btHelper.scanBLE();\r
+ if(scanBLEOnly && btHelper.isBtscanning())\r
+ {\r
+ //如果正在进行独立蓝牙扫描,则强制切换为正常扫描。\r
+ scanBLEOnly = false;\r
+ }else {\r
+ //有蓝牙搜索要求则 先进行蓝牙扫描\r
+ startSOSLocation = true;//启动SOS定位,为了快速响应,只要wifi定位即可。\r
+ forceLocation = 1;\r
+ if (needLocationForBT())\r
+ btHelper.scanBLE();\r
+ }\r
} else {\r
try{\r
Thread.sleep(1000);\r
ICLogger.i("No Move ,skip BT location!");\r
return false;\r
}\r
+ ICLogger.i("BT NoMoveTimeout "+NoMoveTimeout+", forceLocation="+forceLocation+", Config.forceMoveCheck="+Config.forceMoveCheck+", skipMoveCheck="+skipMoveCheck);\r
return true;\r
}\r
public void startLocationProcess(int mod){\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
//trigger AP10 报警低电\r
// connection.send(protocolAPIHelper.getWarningMSG(runtime));\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
}\r
\r
//\r
// }\r
\r
+ public boolean isBtscanning(){\r
+ return btscanning;\r
+ }\r
//开始扫描BLE\r
public void scanBLE() {\r
ICLogger.i( "BT doDiscovery()");\r
if(mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOCK_WATCH)) {\r
// StringMessage msg = protocolAPIHelper.getWarningMSG(mRuntime);\r
// Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
}\r
\r
}\r
mRuntime.Cut_off_flag=1;\r
if(mRuntime.setAlarmType(Runtime.AlarmType.ALARM_CUTOFF)) {\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
// StringMessage msg = protocolAPIHelper.getWarningMSG(mRuntime);\r
// Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
}\r
mRuntime.Anti_off_flag = 0;\r
if(mRuntime.setAlarmType(Runtime.AlarmType.ALARM_WEARED)) {\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
// StringMessage msg = protocolAPIHelper.getWarningMSG(mRuntime);\r
// Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
}\r
mRuntime.Anti_off_flag=1;\r
if(mRuntime.setAlarmType(Runtime.AlarmType.ALARM_ANTIOFF)) {\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
// StringMessage msg = protocolAPIHelper.getWarningMSG(mRuntime);\r
// Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
//如果需要,且没有服务器反馈\r
if (NeedCheckServerResponse==true && ServerResponsed==false){\r
//刚刚发送的包不为空,且检测次数小于3,则保留数据,进行下一次重试。\r
- if (needCheckResponseCMD!=null && CheckCount < 3) {\r
+// if (needCheckResponseCMD!=null && CheckCount < 3) {\r
+ if (needCheckResponseCMD!=null ) { //一直检测 是否服务器收到。\r
//如果cmd有效,且尝试次数小于3, 没有收到反馈的情况下,可以重新插入queue进行下一次尝试!\r
ICLogger.i("checkSrvResponse "+CheckCount+" times for "+needCheckResponseCMD.cmd()+ " "+needCheckResponseCMD.isFromCache());\r
if (!ServiceUtil.offerQueue(needCheckResponseCMD, true)) {\r
if(runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_HIGH)) {\r
//trigger AP10 报警定位\r
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
}\r
\r
if( runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_LOW)) {\r
//trigger AP10 报警定位\r
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
}\r
}\r
\r
if(runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_HIGH)) {\r
//trigger AP10 报警定位\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
}\r
}else if ( runtime.getHRS().bph_threshold_min>0 && runtime.getHRS().getBPH()<runtime.getHRS().bph_threshold_min) {\r
if(runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_LOW)) {\r
//trigger AP10 报警定位\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
}\r
\r
if(runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_HIGH)) {\r
//trigger AP10 报警定位\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
}\r
}else if ( runtime.getHRS().bpl_threshold_min>0 && runtime.getHRS().getBPL()<runtime.getHRS().bpl_threshold_min) {\r
if(runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_LOW)) {\r
//trigger AP10 报警定位\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
}\r
// if (KeepAlive.this.mRuntime.getBatteryLow()){\r
// KeepAlive.this.mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
KeepAlive.this.mRuntime.setAlarmType(Runtime.AlarmType.ALARM_POWER_OFF);\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(KeepAlive.this.mRuntime));\r
\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
//trigger AP10 报警定位\r
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
}else if (runtime.isPowerConnected()==false && runtime.getBatterylevel()< 5 ) {\r
//没有充电,上次电池level > 15% , 上次电池并且不是 电池低电状态,则报警\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
//trigger AP10 报警定位\r
// Deliver.sendLocationMSG( protocolAPIHelper.getWarningMSG(runtime));\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
}\r
}\r
case 1:\r
if(runtime.setAlarmType(Runtime.AlarmType.ALARM_TEMP_HIGH)) {\r
//trigger AP10 报警定位\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
}\r
case 2:\r
if(runtime.setAlarmType(Runtime.AlarmType.ALARM_TEMP_LOW)) {\r
//trigger AP10 报警定位\r
+ ICLogger.i("triggerSOSLocationProcess ");\r
LocationClient.getInstance().triggerSOSLocationProcess();\r
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
}\r
-#Thu Oct 15 20:53:54 CST 2020\r
-VERSION_CODE=660\r
+#Fri Oct 16 18:05:48 CST 2020\r
+VERSION_CODE=661\r