From: TrillGates Date: Mon, 15 Nov 2021 03:04:42 +0000 (+0800) Subject: 去除SOS紧急定位 模式切换,添加运动检测功能开关协议 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=00473e19996d26873c368943dbb438b2b834973e;p=protocol_srv.git 去除SOS紧急定位 模式切换,添加运动检测功能开关协议 --- diff --git a/app/src/main/java/com/ic/protocolSrv/Config.java b/app/src/main/java/com/ic/protocolSrv/Config.java index e71d7e20..595970f4 100644 --- a/app/src/main/java/com/ic/protocolSrv/Config.java +++ b/app/src/main/java/com/ic/protocolSrv/Config.java @@ -236,6 +236,16 @@ public class Config { SharePreferenceUtil.setPrefInt(context, KeyMasterVolume, cycle); } + private static final String KEYGlobalSkipMoveCheckFlag = "SkipMoveCheckGlobalFlag"; + + public static void setSkipMoveCheckFlagGlobal(Context context, boolean en) { + SharePreferenceUtil.setPrefBoolean(context, KEYGlobalSkipMoveCheckFlag, en); + } + + public static boolean getSkipMoveCheckFlagGlobal(Context context) { + return SharePreferenceUtil.getPrefBoolean(context, KEYGlobalSkipMoveCheckFlag, true); + } + public static int getMasterVolume(Context context) { return SharePreferenceUtil.getPrefInt(context, KeyMasterVolume, 15); } diff --git a/app/src/main/java/com/ic/protocolSrv/CoreService.java b/app/src/main/java/com/ic/protocolSrv/CoreService.java index 422b856e..f6d4ea34 100644 --- a/app/src/main/java/com/ic/protocolSrv/CoreService.java +++ b/app/src/main/java/com/ic/protocolSrv/CoreService.java @@ -308,7 +308,8 @@ public class CoreService extends Service { } } //add by TrillGates=====end - runtime.setAlarmType(Runtime.AlarmType.ALARM_SOS); + //去除SOS紧急定位 模式切换(客户需求) + //runtime.setAlarmType(Runtime.AlarmType.ALARM_SOS); //trigger AP10 报警定位 ICLogger.i("triggerSOSLocationProcess "); LocationClient.getInstance().triggerSOSLocationProcess(); diff --git a/app/src/main/java/com/ic/protocolSrv/LocationClient.java b/app/src/main/java/com/ic/protocolSrv/LocationClient.java index a098d34d..5b2a7401 100644 --- a/app/src/main/java/com/ic/protocolSrv/LocationClient.java +++ b/app/src/main/java/com/ic/protocolSrv/LocationClient.java @@ -519,11 +519,9 @@ public class LocationClient { } } } else if (msg.what == msgWhat_StartSOSLocationProcess) { - if (runtime != null) { //更新lbs信息 CellInfoUtil.getCellInfo(runtime.getContextProxy().getTelephonyManager(), runtime); - if (Config.BLEScanProtocol == 0 && runtime.bleInfo.btMacList.size() > 0) { startSOSLocation = true;//启动SOS定位,为了快速响应,只要wifi定位即可。 if (scanBLEOnly && btHelper.isBtscanning()) { @@ -537,13 +535,13 @@ public class LocationClient { } } else { // Util.mSleep(1000); - StringMessage waningmsg = protocolAPIHelper.getWarningMSG(runtime); + StringMessage waningMsg = protocolAPIHelper.getWarningMSG(runtime); if (Config.sendSOSAtOnce) { //客户ZSH因网络较差,经常缓存过多消息造成无法及时发送 //要求直接发送SOS信息,不做缓存。 - connection.send(waningmsg); + connection.send(waningMsg); } else { - DeliverMessage(waningmsg); + DeliverMessage(waningMsg); } //add by TrillGates. //解决多次上传sos状态的问题 diff --git a/app/src/main/java/com/ic/protocols/protocol_fzd.java b/app/src/main/java/com/ic/protocols/protocol_fzd.java index 8884e94d..0d4d0aa3 100644 --- a/app/src/main/java/com/ic/protocols/protocol_fzd.java +++ b/app/src/main/java/com/ic/protocols/protocol_fzd.java @@ -28,6 +28,7 @@ import android.text.TextUtils; import com.ic.protocolSrv.Config; import com.ic.protocolSrv.CoreService; import com.ic.protocolSrv.IFZDCallback; +import com.ic.protocolSrv.LocationClient; import com.ic.protocolSrv.bean.Alarm; import com.ic.protocolSrv.bean.Contact; import com.ic.protocolSrv.bean.HealthInfo; @@ -442,6 +443,8 @@ public class protocol_fzd { IP,//配置服务器地址 SOSREC,//服务器响应S0S消息 LOCATIONMODE,//设置工作模式 + BPMC,//专门控制skipmovecheck + APMC,// } public static HashMap cmdMap; @@ -522,6 +525,8 @@ public class protocol_fzd { cmdMap.put(CMD_TYPE.IP, "IP"); cmdMap.put(CMD_TYPE.SOSREC, "SOSREC"); cmdMap.put(CMD_TYPE.LOCATIONMODE, "LOCATIONMODE"); + cmdMap.put(CMD_TYPE.BPMC, "BPMC"); + cmdMap.put(CMD_TYPE.APMC, "APMC"); } private Connection mConnection = null; @@ -1966,10 +1971,60 @@ public class protocol_fzd { ICLogger.d("服务器收到SOS消息..."); mConnection.DeliverCMDMessageToSystem("sosReceive", cmd); break; + case BPMC: + ICLogger.d("收到服务器下发的修改skipmovecheck"); + handleBPMC(cmd); + break; } return ret; } + + private void handleBPMC(String cmd) { + //指令,IMEI,流水,值:0,1,2。 + //0表示关闭,1表示打开,2表示获取当前的状态,不做设置,只返回 + //IWBPMC,353456789012345,080835,1# + String[] split = cmd.split(CMD_SPLIT); + if (split.length == 4) { + String index = split[2]; + String value = split[3]; + ICLogger.d("BPMC index ==> " + index + " value==> " + value); + //判断value,返回内容 + boolean responseValue = false; + if ("0".equals(value)) { + responseValue = false; + LocationClient.setSkipMoveCheck(false); + Config.setSkipMoveCheckFlagGlobal(mRuntime.getContextProxy().context, false); + } else if ("1".equals(value)) { + responseValue = true; + LocationClient.setSkipMoveCheck(true); + Config.setSkipMoveCheckFlagGlobal(mRuntime.getContextProxy().context, true); + } else if ("2".equals(value)) { + responseValue = LocationClient.getSkipMoveCheck(); + } + //返回结果 + StringMessage apmc = APMC(index, responseValue); + ICLogger.d("apmc ==> " + apmc); + mConnection.send(apmc); + } else { + ICLogger.d("parse error ==> " + cmd); + } + } + + /** + * 回复内容 + * + * @param index + * @param responseValue + * @return + */ + private StringMessage APMC(String index, boolean responseValue) { + StringMessage stringMessage = genFZDCMD(cmdMap.get(CMD_TYPE.APMC), String.valueOf(responseValue)); + ICLogger.d("stringMessage ==> " + stringMessage); + return stringMessage; + } + + /** * 平台回复: [XT*YYYYYYYYYYYYYYY*LEN*PPQ,ID1,昵称 1,手机号 1,ID2,昵称 2,手机号 2] * 实例: [XT*8800000015*000A*e476005866e8a2a6407502b3, 5F204E0,555,8800000016, 5F204E1,556]