麦克风开关(下行协议号:BPMK,响应:APMK)
authorTrillGates <williamtrillgates@gmail.com>
Wed, 23 Jun 2021 06:15:18 +0000 (14:15 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Wed, 23 Jun 2021 06:15:18 +0000 (14:15 +0800)
app/src/main/java/com/ic/protocols/protocol_ic.java

index a2ba866..7290fa6 100644 (file)
@@ -187,6 +187,7 @@ public class protocol_ic {
         AP47,
         BP47,//设置震动
         BPCM,//照相禁用开关
+        BPMK,//关闭麦克风
         UNKNOWN_CMD,
     }
 
@@ -306,6 +307,7 @@ public class protocol_ic {
         cmdMap.put(CMD_TYPE.AP47, "AP47");
         cmdMap.put(CMD_TYPE.BP47, "BP47");
         cmdMap.put(CMD_TYPE.BPCM, "BPCM");
+        cmdMap.put(CMD_TYPE.BPMK, "BPMK");
     }
 
 
@@ -3215,6 +3217,11 @@ public class protocol_ic {
                 mConnection.DeliverCMDMessageToSystem("APCM", cmd);//通知下面线程状态变化
                 handleBPCM(mRuntime, cmd);
                 break;
+            case BPMK:
+                ICLogger.d("收到关闭麦克风的指令BPMK");
+                mConnection.DeliverCMDMessageToSystem("APMK", cmd);//通知下面线程状态变化
+                handleBPMK(mRuntime, cmd);
+                break;
             case BPDH:
                 ICLogger.i("聆听");
                 handleBPDH(mConnection, mRuntime, cmd);
@@ -3246,13 +3253,39 @@ public class protocol_ic {
 
     }
 
+    /**
+     * 处理麦克风的指令
+     *
+     * @param mRuntime
+     * @param cmd
+     */
+    private void handleBPMK(Runtime mRuntime, String cmd) {
+        ICLogger.d(cmd + " handleBPMK --> " + cmd);
+        try {
+            //IWBPMK,353456789012345,080835,1#
+            String[] split = cmd.split(CMDSPLIT);
+            if (split.length == 4) {
+                ContentResolver resolver = mRuntime.getContextProxy().getResolver();
+                ContentValues values = new ContentValues();
+                values.put(FZDDatabaseHelper.sKey, "is_mic_enable");
+                //把值保存到数据库中,相机会就监听数据库值的变化,做出响应
+                values.put(FZDDatabaseHelper.sValue, split[3].replace(CMDEND, ""));
+                resolver.insert(Uri.parse(FZDSettingsProvider.SETTINGS), values);
+            } else {
+                ICLogger.d("parse cmd error...");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
     /**
      * 处理
      */
     private void handleBPCM(Runtime mRuntime, String cmd) {
         //修改数据库即可,
         //1 : 表示设备可以拍照   0:表示设备不可拍照 ,用户想做拍照会有提示禁用。
-        ICLogger.d(cmd + " trigger setting --> " + cmd);
+        ICLogger.d(cmd + " handleBPCM --> " + cmd);
         try {
             //IWBPCM,353456789012345,080835,1#
             String[] split = cmd.split(CMDSPLIT);