修复jiai协议中,以及ic协议中BP40 需要阅读消息提醒的漏洞
authorsnickersun <scy@incartech.cn>
Mon, 16 Nov 2020 03:17:24 +0000 (11:17 +0800)
committersnickersun <scy@incartech.cn>
Mon, 16 Nov 2020 03:17:24 +0000 (11:17 +0800)
app/src/main/java/com/enqualcomm/support/Config.java
app/src/main/java/com/enqualcomm/support/service/Deliver.java
app/src/main/java/com/enqualcomm/support/utils/Util.java
app/src/main/java/com/ic/protocols/protocol_ic.java
app/src/main/java/com/ic/protocols/protocol_jiai.java

index f9b0fa2..e7578d5 100644 (file)
@@ -421,16 +421,26 @@ public class Config {
     return ret;\r
   }\r
 \r
-  public static boolean do_broadCast_message_no_indication=false;\r
+  //收到语音微聊广播消息给外部窗口\r
+  public static boolean do_broadCast_message=false;\r
 \r
+  //每次心跳时都检测逃逸并报警\r
   public static boolean needAllwaysAlarmFenceOut=false;\r
+  //每次心跳时都检测剪断并报警,只报警\r
   public static boolean needAllwaysAlarmCutOff=false;\r
+\r
+  //体温非正常报警\r
   public static boolean needTemperature_abnormal_alarm=false;\r
   public static boolean A9_noBroadCastActionStrip=false;\r
   public static boolean C5_noBroadCastActionStrip=false;\r
   public static boolean L004_BroadCastActionStrip=false;\r
+\r
+  //停止系统NTP时钟同步标志\r
   public static boolean disable_ntp_server=false;\r
 \r
+  //需要系统发送已阅读消息的标志\r
+  public static boolean noPushTxtReadReply=true;\r
+  //蓝牙定位扫描 协议0模式,扫到beacon信标时,如果属于第一次扫到的进入状态(解除逃逸状态),发送服务器的标志位,主要由于C5客户只要逃逸,不要解除逃逸消息。\r
   public static boolean noBLE_RelaseEscapeAlarm=true;\r
 \r
   public static void enable_NTP_Server(Context context,boolean enable){\r
@@ -463,7 +473,7 @@ public class Config {
     if (tmp.equals("true"))\r
       ret=true;\r
 \r
-    do_broadCast_message_no_indication = ret;\r
+    do_broadCast_message = ret;\r
 \r
     noPPGSensor=(ICJniUtils.isPPGavailable()==0);\r
     noTempSensor=(ICJniUtils.isTemperatureDevAvailable()==0);\r
@@ -528,6 +538,7 @@ public class Config {
       needAllwaysAlarmCutOff=true;\r
       needAllwaysAlarmFenceOut=true;\r
       needTemperature_abnormal_alarm=true;\r
+      noPushTxtReadReply=false;//A9需要阅读反馈\r
       noPPGSensor=false;\r
       noTempSensor=false;\r
       A9_noBroadCastActionStrip=true;\r
@@ -543,6 +554,8 @@ public class Config {
       noPPGSensor=true;\r
       noTempSensor=true;\r
       C5_noBroadCastActionStrip=true;\r
+    }else if(custom_name.equals("L02")){\r
+      noPushTxtReadReply=false;//即爱需要阅读反馈\r
     }\r
 \r
 \r
index ecc2cb1..09182ee 100644 (file)
@@ -507,7 +507,7 @@ public class Deliver extends AbstractConnectionService {
           Contact param2Contact = new Contact(CATEGORY_GROUP, (mRuntime.getContextProxy()).context.getResources().getString(R.string.all_group), Contact.GROUP_ALL);\r
           int i = mRuntime.getContextProxy().getTelephonyManager().getCallState();\r
           if (!mRuntime.getBatteryLow() && 1 != i && 2 != i) {\r
-            if (Config.do_broadCast_message_no_indication)\r
+            if (Config.do_broadCast_message)\r
             {\r
 \r
               ICLogger.d(Constants.ACTION_MESSAGE_RECEIVED+" "+paramStringMessage.isFromCache());\r
index 49d60a2..2228f7b 100644 (file)
@@ -111,9 +111,9 @@ public class Util {
             Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));\r
 \r
           }\r
-          runtime.getContextProxy().sendMsgBroadcast(txtmsg, 3); //需要恢复消息\r
+          runtime.getContextProxy().sendMsgBroadcast(txtmsg, 3); //msgType 3需要回复,0不需要回复\r
 \r
-          //runtime.getContextProxy().sendMsgBroadcast(txtmsg, 0); //不需要回复\r
+          //runtime.getContextProxy().sendMsgBroadcast(txtmsg, 0); //msgType 3需要回复,0不需要回复\r
 \r
 \r
         }\r
index 4b60fc7..f47250b 100644 (file)
@@ -1258,8 +1258,12 @@ public class protocol_ic {
             //设定当前工作模式及循环频率\r
             connection.send(msg);\r
             ICLogger.i("received Txt Msg "+txtmsg);\r
-            Config.setLastUnReadMessage(runtime.getContextProxy().context,sb.toString());\r
-            runtime.getContextProxy().sendMsgBroadcast(txtmsg,0);\r
+            if(!Config.noPushTxtReadReply) {\r
+                Config.setLastUnReadMessage(runtime.getContextProxy().context, sb.toString());\r
+                runtime.getContextProxy().sendMsgBroadcast(txtmsg,3);//msgType 3需要回复,0不需要回复\r
+            }else{\r
+                runtime.getContextProxy().sendMsgBroadcast(txtmsg,0);//msgType 3需要回复,0不需要回复\r
+            }\r
             runtime.getContextProxy().saveMstToSMSDB(txtmsg);\r
         }else{\r
             ICLogger.i("BP40 format error!");\r
index 9b15242..4efe75b 100644 (file)
@@ -1659,14 +1659,22 @@ public static StringMessage AP50(Runtime ds){
             String play_time=cmdlist[5];\r
             String vib_time=cmdlist[6];\r
             ICLogger.i("收到服务器文本 "+txtmsg+" 序号 "+msg_index_no+" , 播放 "+play_time+" 次,震动 "+vib_time+" 次!");\r
-            Config.setLastUnReadMessage(runtime.getContextProxy().context,txtmsg); //保存未读文档\r
+            StringBuilder sb=new StringBuilder();\r
+            runtime.PushtxtMsg_srv_index=msg_index_no;//给回复AP94用\r
+            sb.append(cmdindex).append(CMDSPLIT).append(TimeUtil.getSystemTimeyyyyMMddHHmmss()).append(CMDSPLIT).append(txtmsg);\r
+\r
             txtmsg=Util.decodeUnicode2Utf8(txtmsg);\r
             StringMessage msg=AP93(cmdindex);\r
             //设定当前工作模式及循环频率\r
             connection.send(msg);\r
             runtime.PushtxtMsg_srv_index=msg_index_no;//给回复AP94用\r
             ICLogger.i("received Txt Msg "+txtmsg);\r
-            runtime.getContextProxy().sendMsgBroadcast(txtmsg,3);\r
+            if(!Config.noPushTxtReadReply) {\r
+                Config.setLastUnReadMessage(runtime.getContextProxy().context, sb.toString()); //保存未读文档\r
+                runtime.getContextProxy().sendMsgBroadcast(txtmsg,3);  //msgType 3需要回复,0不需要回复\r
+            }else{\r
+                runtime.getContextProxy().sendMsgBroadcast(txtmsg,0);  //msgType 3需要回复,0不需要回复\r
+            }\r
             runtime.getContextProxy().saveMstToSMSDB(txtmsg);\r
 \r
         }else{\r