From: snickersun Date: Mon, 16 Nov 2020 03:17:24 +0000 (+0800) Subject: 修复jiai协议中,以及ic协议中BP40 需要阅读消息提醒的漏洞 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=97ca05252e0519fd2c4db6a98747147f19049425;p=protocol_srv.git 修复jiai协议中,以及ic协议中BP40 需要阅读消息提醒的漏洞 --- diff --git a/app/src/main/java/com/enqualcomm/support/Config.java b/app/src/main/java/com/enqualcomm/support/Config.java index f9b0fa29..e7578d58 100644 --- a/app/src/main/java/com/enqualcomm/support/Config.java +++ b/app/src/main/java/com/enqualcomm/support/Config.java @@ -421,16 +421,26 @@ public class Config { return ret; } - public static boolean do_broadCast_message_no_indication=false; + //收到语音微聊广播消息给外部窗口 + public static boolean do_broadCast_message=false; + //每次心跳时都检测逃逸并报警 public static boolean needAllwaysAlarmFenceOut=false; + //每次心跳时都检测剪断并报警,只报警 public static boolean needAllwaysAlarmCutOff=false; + + //体温非正常报警 public static boolean needTemperature_abnormal_alarm=false; public static boolean A9_noBroadCastActionStrip=false; public static boolean C5_noBroadCastActionStrip=false; public static boolean L004_BroadCastActionStrip=false; + + //停止系统NTP时钟同步标志 public static boolean disable_ntp_server=false; + //需要系统发送已阅读消息的标志 + public static boolean noPushTxtReadReply=true; + //蓝牙定位扫描 协议0模式,扫到beacon信标时,如果属于第一次扫到的进入状态(解除逃逸状态),发送服务器的标志位,主要由于C5客户只要逃逸,不要解除逃逸消息。 public static boolean noBLE_RelaseEscapeAlarm=true; public static void enable_NTP_Server(Context context,boolean enable){ @@ -463,7 +473,7 @@ public class Config { if (tmp.equals("true")) ret=true; - do_broadCast_message_no_indication = ret; + do_broadCast_message = ret; noPPGSensor=(ICJniUtils.isPPGavailable()==0); noTempSensor=(ICJniUtils.isTemperatureDevAvailable()==0); @@ -528,6 +538,7 @@ public class Config { needAllwaysAlarmCutOff=true; needAllwaysAlarmFenceOut=true; needTemperature_abnormal_alarm=true; + noPushTxtReadReply=false;//A9需要阅读反馈 noPPGSensor=false; noTempSensor=false; A9_noBroadCastActionStrip=true; @@ -543,6 +554,8 @@ public class Config { noPPGSensor=true; noTempSensor=true; C5_noBroadCastActionStrip=true; + }else if(custom_name.equals("L02")){ + noPushTxtReadReply=false;//即爱需要阅读反馈 } diff --git a/app/src/main/java/com/enqualcomm/support/service/Deliver.java b/app/src/main/java/com/enqualcomm/support/service/Deliver.java index ecc2cb11..09182eef 100644 --- a/app/src/main/java/com/enqualcomm/support/service/Deliver.java +++ b/app/src/main/java/com/enqualcomm/support/service/Deliver.java @@ -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); int i = mRuntime.getContextProxy().getTelephonyManager().getCallState(); if (!mRuntime.getBatteryLow() && 1 != i && 2 != i) { - if (Config.do_broadCast_message_no_indication) + if (Config.do_broadCast_message) { ICLogger.d(Constants.ACTION_MESSAGE_RECEIVED+" "+paramStringMessage.isFromCache()); diff --git a/app/src/main/java/com/enqualcomm/support/utils/Util.java b/app/src/main/java/com/enqualcomm/support/utils/Util.java index 49d60a2a..2228f7b4 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/Util.java +++ b/app/src/main/java/com/enqualcomm/support/utils/Util.java @@ -111,9 +111,9 @@ public class Util { Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime)); } - runtime.getContextProxy().sendMsgBroadcast(txtmsg, 3); //需要恢复消息 + runtime.getContextProxy().sendMsgBroadcast(txtmsg, 3); //msgType 3需要回复,0不需要回复 - //runtime.getContextProxy().sendMsgBroadcast(txtmsg, 0); //不需要回复 + //runtime.getContextProxy().sendMsgBroadcast(txtmsg, 0); //msgType 3需要回复,0不需要回复 } diff --git a/app/src/main/java/com/ic/protocols/protocol_ic.java b/app/src/main/java/com/ic/protocols/protocol_ic.java index 4b60fc7d..f47250b9 100644 --- a/app/src/main/java/com/ic/protocols/protocol_ic.java +++ b/app/src/main/java/com/ic/protocols/protocol_ic.java @@ -1258,8 +1258,12 @@ public class protocol_ic { //设定当前工作模式及循环频率 connection.send(msg); ICLogger.i("received Txt Msg "+txtmsg); - Config.setLastUnReadMessage(runtime.getContextProxy().context,sb.toString()); - runtime.getContextProxy().sendMsgBroadcast(txtmsg,0); + if(!Config.noPushTxtReadReply) { + Config.setLastUnReadMessage(runtime.getContextProxy().context, sb.toString()); + runtime.getContextProxy().sendMsgBroadcast(txtmsg,3);//msgType 3需要回复,0不需要回复 + }else{ + runtime.getContextProxy().sendMsgBroadcast(txtmsg,0);//msgType 3需要回复,0不需要回复 + } runtime.getContextProxy().saveMstToSMSDB(txtmsg); }else{ ICLogger.i("BP40 format error!"); diff --git a/app/src/main/java/com/ic/protocols/protocol_jiai.java b/app/src/main/java/com/ic/protocols/protocol_jiai.java index 9b15242a..4efe75b4 100644 --- a/app/src/main/java/com/ic/protocols/protocol_jiai.java +++ b/app/src/main/java/com/ic/protocols/protocol_jiai.java @@ -1659,14 +1659,22 @@ public static StringMessage AP50(Runtime ds){ String play_time=cmdlist[5]; String vib_time=cmdlist[6]; ICLogger.i("收到服务器文本 "+txtmsg+" 序号 "+msg_index_no+" , 播放 "+play_time+" 次,震动 "+vib_time+" 次!"); - Config.setLastUnReadMessage(runtime.getContextProxy().context,txtmsg); //保存未读文档 + StringBuilder sb=new StringBuilder(); + runtime.PushtxtMsg_srv_index=msg_index_no;//给回复AP94用 + sb.append(cmdindex).append(CMDSPLIT).append(TimeUtil.getSystemTimeyyyyMMddHHmmss()).append(CMDSPLIT).append(txtmsg); + txtmsg=Util.decodeUnicode2Utf8(txtmsg); StringMessage msg=AP93(cmdindex); //设定当前工作模式及循环频率 connection.send(msg); runtime.PushtxtMsg_srv_index=msg_index_no;//给回复AP94用 ICLogger.i("received Txt Msg "+txtmsg); - runtime.getContextProxy().sendMsgBroadcast(txtmsg,3); + if(!Config.noPushTxtReadReply) { + Config.setLastUnReadMessage(runtime.getContextProxy().context, sb.toString()); //保存未读文档 + runtime.getContextProxy().sendMsgBroadcast(txtmsg,3); //msgType 3需要回复,0不需要回复 + }else{ + runtime.getContextProxy().sendMsgBroadcast(txtmsg,0); //msgType 3需要回复,0不需要回复 + } runtime.getContextProxy().saveMstToSMSDB(txtmsg); }else{