去除SOS紧急定位 模式切换,添加运动检测功能开关协议
authorTrillGates <williamtrillgates@gmail.com>
Mon, 15 Nov 2021 03:04:42 +0000 (11:04 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Mon, 15 Nov 2021 03:04:42 +0000 (11:04 +0800)
app/src/main/java/com/ic/protocolSrv/Config.java
app/src/main/java/com/ic/protocolSrv/CoreService.java
app/src/main/java/com/ic/protocolSrv/LocationClient.java
app/src/main/java/com/ic/protocols/protocol_fzd.java

index e71d7e2..595970f 100644 (file)
@@ -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);
     }
index 422b856..f6d4ea3 100644 (file)
@@ -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();
index a098d34..5b2a740 100644 (file)
@@ -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状态的问题
index 8884e94..0d4d0aa 100644 (file)
@@ -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<CMD_TYPE, String> 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]