ic的协议支持后台修改移动检测的值
authorTrillGates <williamtrillgates@gmail.com>
Tue, 14 Dec 2021 03:08:11 +0000 (11:08 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Tue, 14 Dec 2021 03:08:11 +0000 (11:08 +0800)
app/src/main/java/com/enqualcomm/support/provider/ICDatabaseHelper.java
app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java
app/src/main/java/com/ic/protocols/protocol_ic.java

index dbac12a..b101aea 100644 (file)
@@ -10,7 +10,6 @@ import com.enqualcomm.support.utils.ICLogger;
 
 public class ICDatabaseHelper extends SQLiteOpenHelper {
 
-
     private final static int VERSION_1 = 1;
     private final static int VERSION_2 = 2;
     private final static int VERSION_3 = 3;
index ab54803..1039a23 100644 (file)
@@ -449,7 +449,6 @@ public class ProcessReceiver extends BroadcastReceiver {
                         this.playNotificationVoice(context);
                         VibrateUtil.getInstance(context).vibrateOn(true);
                     }
-
                     this.screenOn(context);
                 }
             } else if (paramIntent.hasExtra("findDev")) {
@@ -473,7 +472,6 @@ public class ProcessReceiver extends BroadcastReceiver {
                     this.screenOn(context);
                 }
             }
-
         } else if (ACTION_SET_SIT_RANGE.equals(str)) {
             if (paramIntent.hasExtra(Constants.KEY_SIT_RANGE)) {
                 int sitrange = paramIntent.getIntExtra(Constants.KEY_SIT_RANGE, 0);
index f844c2d..c3bd6cd 100644 (file)
@@ -17,6 +17,7 @@ import android.text.TextUtils;
 import com.enqualcomm.support.Config;
 import com.enqualcomm.support.Constants;
 import com.enqualcomm.support.CoreService;
+import com.enqualcomm.support.LocationClient;
 import com.enqualcomm.support.R;
 import com.enqualcomm.support.bean.Alarm;
 import com.enqualcomm.support.bean.Contact;
@@ -191,6 +192,8 @@ public class protocol_ic {
         BP65,//设置音量
         AP47,
         BP47,//设置震动
+        BPMC,//专门控制skipmovecheck
+        APMC,//
         UNKNOWN_CMD,
     }
 
@@ -226,6 +229,8 @@ public class protocol_ic {
         cmdMap.put(CMD_TYPE.BPCH, "BPCH");
         cmdMap.put(CMD_TYPE.APBR, "APBR");
         cmdMap.put(CMD_TYPE.BPBR, "BPBR");
+        cmdMap.put(CMD_TYPE.BPMC, "BPMC");
+        cmdMap.put(CMD_TYPE.APMC, "APMC");
         /* 服务器发起*/
         cmdMap.put(CMD_TYPE.AP12, "AP12");
         cmdMap.put(CMD_TYPE.BP12, "BP12");
@@ -3254,11 +3259,52 @@ public class protocol_ic {
             case AP99://电话监听:
                 handleAP99(mConnection, mRuntime, 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(CMDSPLIT);
+        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);
+        }
+    }
 
+    private StringMessage APMC(String index, boolean responseValue) {
+        return genStringMessage(cmdMap.get(CMD_TYPE.APMC),
+                new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APMC))
+                .append(CMDSPLIT).append(index)
+                .append(CMDSPLIT).append(responseValue)
+                .append(CMDEND).toString());
     }
 
     /**