From: snickersun Date: Mon, 26 Oct 2020 13:46:50 +0000 (+0800) Subject: release V678 X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=cefa84e00efef06ec3d66ece5c99abe318a35491;p=protocol_srv.git release V678 1、重启,关机,出厂设置等命令延迟2秒执行,尽量确保回复服务器成功。 2、优化AntiMonitorService,修改delay时间为2秒,并最大化减少timer的重置次数。 3、添加protocol_ic BPAT 剪断消息开关 --- diff --git a/app/app.iml b/app/app.iml index 497b2ac8..d1100d69 100644 --- a/app/app.iml +++ b/app/app.iml @@ -29,14 +29,14 @@ - - + + - + diff --git a/app/release/ICSer_V675_2010261901_release.apk b/app/release/ICSer_V678_2010262143_release.apk similarity index 78% rename from app/release/ICSer_V675_2010261901_release.apk rename to app/release/ICSer_V678_2010262143_release.apk index a0394706..4daa1ff0 100644 Binary files a/app/release/ICSer_V675_2010261901_release.apk and b/app/release/ICSer_V678_2010262143_release.apk differ diff --git a/app/release/output.json b/app/release/output.json index c839722e..b654b530 100644 --- a/app/release/output.json +++ b/app/release/output.json @@ -1 +1 @@ -[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":675,"versionName":"2010261901","enabled":true,"outputFile":"ICSer_V675_2010261901_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V675_2010261901_release.apk","properties":{}}] \ No newline at end of file +[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":678,"versionName":"2010262143","enabled":true,"outputFile":"ICSer_V678_2010262143_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V678_2010262143_release.apk","properties":{}}] \ No newline at end of file diff --git a/app/src/main/java/com/enqualcomm/support/CoreService.java b/app/src/main/java/com/enqualcomm/support/CoreService.java index 5e0d9469..2ca2d425 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -1207,9 +1207,7 @@ public class CoreService extends Service { setLocationAlarm(runtime.getLocationInstance().getWorkingMod());//同时重置alarm并触发定位 }else if(ACTION_CHECK_ANTIOFF_EVENT.equals(paramIntent.getAction())){ - if (antiservice.check_ant_event()==1){ - setAntiCheckAlarm(); - } + antiservice.check_ant_event(); } this.invokeHandlerServiceChain.processUserRequest(paramIntent, this.connection, this.runtime); @@ -1245,10 +1243,6 @@ public class CoreService extends Service { } if (Config.LOG_TOFILE)ICLogger.logToFile("alarmCycle",sb.toString()); } - public void setAntiCheckAlarm(){ - AlarmHelper.setRealTimeAlarmInMicorSeconds(runtime.getContextProxy().context,500,ACTION_CHECK_ANTIOFF_EVENT); - } - public void setEmegencyLocationSTOPAlarm(int delayTimeInMinutes){ StringBuilder sb=new StringBuilder(); diff --git a/app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java b/app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java index 1a8600c1..df9f4e7b 100644 --- a/app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java +++ b/app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java @@ -18,6 +18,7 @@ import com.enqualcomm.support.R; import com.enqualcomm.support.bean.Runtime; import com.enqualcomm.support.bean.StringMessage; import com.enqualcomm.support.service.base.AbstractInvokeHandlerService; +import com.enqualcomm.support.utils.AlarmHelper; import com.enqualcomm.support.utils.Connection; import com.enqualcomm.support.utils.ICLogger; @@ -26,6 +27,7 @@ import com.enqualcomm.support.utils.VibrateUtil; import com.ic.protocols.protocolAPIHelper; import static com.enqualcomm.support.Constants.ACTION_ANTI_OFF; +import static com.enqualcomm.support.Constants.ACTION_CHECK_ANTIOFF_EVENT; import static com.enqualcomm.support.Constants.KEY_ANTI_EVENT; import static com.enqualcomm.support.Constants.KEY_ANTI_TXT; import static java.lang.Thread.interrupted; @@ -192,22 +194,29 @@ public class AntiMonitorService extends AbstractInvokeHandlerService { ICLogger.i("anti_event_receivedTime in "+ (currenttime - anti_event_receivedTime) +"ms ago ,anti_event_count_when_start_timer "+ant_status_event_reported ); - if ((currenttime- anti_event_receivedTime) >= 1000){ + if ((currenttime- anti_event_receivedTime) >= 2000){ send_antiof_event(); ant_status_event_reported=0; return 0; }else{ + long restTimeNeedDelay=(2000 + anti_event_receivedTime-currenttime); + ICLogger.i("Still need delay "+restTimeNeedDelay+"ms to check anti_event again!"); + setAntiCheckAlarm((int)restTimeNeedDelay); return 1; } } + + public void setAntiCheckAlarm(int ms){ + AlarmHelper.setRealTimeAlarmInMicorSeconds(mRuntime.getContextProxy().context,ms,ACTION_CHECK_ANTIOFF_EVENT); + } private void reset_timer(){ if (1==ant_status_event_reported) //出现 ant_status_event_reported=0表示 有消息到来,需要开始, { // antioff_timer.schedule(antioff_timeout_handler,1000); //两秒后发送消息 - CoreService.getInstance().setAntiCheckAlarm(); + setAntiCheckAlarm(2000); } } /** 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 abc1fd0a..78eb6860 100644 --- a/app/src/main/java/com/enqualcomm/support/service/Deliver.java +++ b/app/src/main/java/com/enqualcomm/support/service/Deliver.java @@ -422,7 +422,7 @@ public class Deliver extends AbstractConnectionService { public void run() { Util.shutdown(); } - },1000); + },2000); return true; } else if ("FactoryResetCheckSim".equals(paramStringMessage.cmd())) { @@ -440,7 +440,7 @@ public class Deliver extends AbstractConnectionService { public void run() { Util.doMasterClear(paramRuntime.getContextProxy().context); } - },1000); + },2000); return true; } else if ("poweroff".equals(paramStringMessage.cmd())) { paramRuntime.setShutdown(true); @@ -449,7 +449,7 @@ public class Deliver extends AbstractConnectionService { public void run() { Util.shutdown(); } - },500); + },2000); return true; } else if ("FactoryReset".equals(paramStringMessage.cmd())) { mSendMSGHandler.postDelayed(new Runnable() { @@ -457,7 +457,7 @@ public class Deliver extends AbstractConnectionService { public void run() { Util.doMasterClear(paramRuntime.getContextProxy().context); } - },500); + },2000); return true; } else if ("Reboot".equals(paramStringMessage.cmd())) { mSendMSGHandler.postDelayed(new Runnable() { @@ -465,7 +465,7 @@ public class Deliver extends AbstractConnectionService { public void run() { Util.reboot(paramRuntime.getContextProxy().context); } - },500); + },2000); return true; } else if ("heartbeat".equals(paramStringMessage.cmd())) { //每次心跳,查询一下 是否有语音消息需要接收。 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 a60b1be0..ac75b3cc 100644 --- a/app/src/main/java/com/ic/protocols/protocol_ic.java +++ b/app/src/main/java/com/ic/protocols/protocol_ic.java @@ -146,6 +146,8 @@ public class protocol_ic { BP99, APTQ,//天气 BPTQ, + APAT,//剪断消息开关 + BPAT, UNKNOWN_CMD, } @@ -248,6 +250,8 @@ public class protocol_ic { cmdMap.put(CMD_TYPE.BP99, "BP99"); cmdMap.put(CMD_TYPE.APTQ, "APTQ"); cmdMap.put(CMD_TYPE.BPTQ, "BPTQ"); + cmdMap.put(CMD_TYPE.APAT, "APAT"); + cmdMap.put(CMD_TYPE.BPAT, "BPAT"); } @@ -2504,7 +2508,62 @@ public class protocol_ic { } + public static StringMessage APAT(String id,String cmd) + { + return genStringMessage("APAT",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APAT)) + .append(CMDSPLIT).append(id) + .append(CMDSPLIT).append(cmd) + .append(CMDEND).toString()); + } + /*** + * 响应剪断开关设定消息 + * @param connection + * @param runtime + * @param cmd + */ + public void handleBPAT( Connection connection,Runtime runtime,String cmd) { +/*** + * IWBPAT,353456789012345,080835,1# + * 说明:是否提示表带是否连接的开关,即剪断报警开关 + * IW:标识符 + * BPAT : 命令字符 + * 353456789012345:IMEI号,设备唯一ID + * 080835:指令流水号 + * 1: 表示剪断报警开关,1为开,0 为关 + * 设备响应: IWAPAT,080835, 1# + * 080835:指令流水号 + * 1: 剪断开关状态(实际上与下行的命令一致) + */ + + log("BPAT "+cmd); + String[] cmdlist=cmd.split(CMDSPLIT); + if (cmdlist.length==4){ + + String imei=cmdlist[1]; + String id=cmdlist[2]; + String cmdid=cmdlist[3]; + connection.send(APAT(id,cmdid)); + if(cmdid.trim().equals("1")){ + WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context); +// runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_lock_success), 2); + Util.ShowToast(runtime,runtime.getContextProxy().context.getResources().getString(R.string.alarm_lock_success)); + Config.setNeedAntiOff(runtime.getContextProxy().context,true); + Config.setNeedCutOff(runtime.getContextProxy().context,true); + runtime.setNeedAntioff(true); + runtime.setNeddReportCutoff(true); + } else { + WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context); + runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_unbind_success), 2); + Config.setNeedAntiOff(runtime.getContextProxy().context,false); + Config.setNeedCutOff(runtime.getContextProxy().context,false); + runtime.setNeedAntioff(false); + runtime.setNeddReportCutoff(false); + } + }else{ + ICLogger.i(" BPAT Format error!"); + } + } public boolean handleCmd(CMD_TYPE type, String cmd) { //普通非二进制命令用此函数处理 @@ -2651,7 +2710,7 @@ public class protocol_ic { mConnection.DeliverCMDMessageToSystem("AP86",cmd);//通知下面线程状态变化 break; - case BP68: + case BP68: //绑定解绑 handleBP68(cmd,mConnection,mRuntime); break; case BP88: @@ -2718,6 +2777,11 @@ public class protocol_ic { case BPTQ: handleBPTQ(mConnection,mRuntime,cmd); break; + case BPAT: + handleBPAT(mConnection,mRuntime,cmd); + break; + + } return ret; diff --git a/app/version_code.properties b/app/version_code.properties index d7199029..f3b99f96 100644 --- a/app/version_code.properties +++ b/app/version_code.properties @@ -1,2 +1,2 @@ -#Mon Oct 26 19:01:39 CST 2020 -VERSION_CODE=675 +#Mon Oct 26 21:43:41 CST 2020 +VERSION_CODE=678