release V678
authorsnickersun <scy@incartech.cn>
Mon, 26 Oct 2020 13:46:50 +0000 (21:46 +0800)
committersnickersun <scy@incartech.cn>
Mon, 26 Oct 2020 13:46:50 +0000 (21:46 +0800)
1、重启,关机,出厂设置等命令延迟2秒执行,尽量确保回复服务器成功。
2、优化AntiMonitorService,修改delay时间为2秒,并最大化减少timer的重置次数。
3、添加protocol_ic BPAT 剪断消息开关

app/app.iml
app/release/ICSer_V678_2010262143_release.apk [moved from app/release/ICSer_V675_2010261901_release.apk with 78% similarity]
app/release/output.json
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java
app/src/main/java/com/enqualcomm/support/service/Deliver.java
app/src/main/java/com/ic/protocols/protocol_ic.java
app/version_code.properties

index 497b2ac..d1100d6 100644 (file)
     <output-test url="file://$MODULE_DIR$/build/intermediates/javac/debugUnitTest/classes"/>\r
     <exclude-output/>\r
     <content url="file://$MODULE_DIR$">\r
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debug/compileDebugRenderscript/out" isTestSource="false" generated="true"/>\r
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out" isTestSource="false" generated="true"/>\r
       <sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debug/out" isTestSource="false" generated="true"/>\r
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out" isTestSource="false" generated="true"/>\r
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debug/compileDebugRenderscript/out" isTestSource="false" generated="true"/>\r
       <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true"/>\r
       <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" generated="true"/>\r
       <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" generated="true"/>\r
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true"/>\r
       <sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debugAndroidTest/compileDebugAndroidTestAidl/out" isTestSource="true" generated="true"/>\r
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true"/>\r
       <sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debugAndroidTest/out" isTestSource="true" generated="true"/>\r
       <sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debugAndroidTest/compileDebugAndroidTestRenderscript/out" isTestSource="true" generated="true"/>\r
       <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" generated="true"/>\r
similarity index 78%
rename from app/release/ICSer_V675_2010261901_release.apk
rename to app/release/ICSer_V678_2010262143_release.apk
index a039470..4daa1ff 100644 (file)
Binary files a/app/release/ICSer_V675_2010261901_release.apk and b/app/release/ICSer_V678_2010262143_release.apk differ
index c839722..b654b53 100644 (file)
@@ -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
index 5e0d946..2ca2d42 100644 (file)
@@ -1207,9 +1207,7 @@ public class CoreService extends Service {
                 setLocationAlarm(runtime.getLocationInstance().getWorkingMod());//同时重置alarm并触发定位\r
 \r
             }else if(ACTION_CHECK_ANTIOFF_EVENT.equals(paramIntent.getAction())){\r
-                if (antiservice.check_ant_event()==1){\r
-                    setAntiCheckAlarm();\r
-                }\r
+                antiservice.check_ant_event();\r
             }\r
 \r
             this.invokeHandlerServiceChain.processUserRequest(paramIntent, this.connection, this.runtime);\r
@@ -1245,10 +1243,6 @@ public class CoreService extends Service {
         }\r
         if (Config.LOG_TOFILE)ICLogger.logToFile("alarmCycle",sb.toString());\r
     }\r
-    public void setAntiCheckAlarm(){\r
-        AlarmHelper.setRealTimeAlarmInMicorSeconds(runtime.getContextProxy().context,500,ACTION_CHECK_ANTIOFF_EVENT);\r
-    }\r
-\r
 \r
     public void setEmegencyLocationSTOPAlarm(int delayTimeInMinutes){\r
         StringBuilder sb=new StringBuilder();\r
index 1a8600c..df9f4e7 100644 (file)
@@ -18,6 +18,7 @@ import com.enqualcomm.support.R;
 import com.enqualcomm.support.bean.Runtime;\r
 import com.enqualcomm.support.bean.StringMessage;\r
 import com.enqualcomm.support.service.base.AbstractInvokeHandlerService;\r
+import com.enqualcomm.support.utils.AlarmHelper;\r
 import com.enqualcomm.support.utils.Connection;\r
 import com.enqualcomm.support.utils.ICLogger;\r
 \r
@@ -26,6 +27,7 @@ import com.enqualcomm.support.utils.VibrateUtil;
 import com.ic.protocols.protocolAPIHelper;\r
 \r
 import static com.enqualcomm.support.Constants.ACTION_ANTI_OFF;\r
+import static com.enqualcomm.support.Constants.ACTION_CHECK_ANTIOFF_EVENT;\r
 import static com.enqualcomm.support.Constants.KEY_ANTI_EVENT;\r
 import static com.enqualcomm.support.Constants.KEY_ANTI_TXT;\r
 import static java.lang.Thread.interrupted;\r
@@ -192,22 +194,29 @@ public class AntiMonitorService extends AbstractInvokeHandlerService {
         ICLogger.i("anti_event_receivedTime in "+ (currenttime - anti_event_receivedTime)\r
                 +"ms ago ,anti_event_count_when_start_timer "+ant_status_event_reported\r
         );\r
-        if ((currenttime- anti_event_receivedTime) >= 1000){\r
+        if ((currenttime- anti_event_receivedTime) >= 2000){\r
             send_antiof_event();\r
 \r
             ant_status_event_reported=0;\r
             return 0;\r
         }else{\r
+            long restTimeNeedDelay=(2000 + anti_event_receivedTime-currenttime);\r
+            ICLogger.i("Still need delay "+restTimeNeedDelay+"ms to check anti_event again!");\r
+            setAntiCheckAlarm((int)restTimeNeedDelay);\r
             return 1;\r
         }\r
 \r
     }\r
+\r
+    public void setAntiCheckAlarm(int ms){\r
+        AlarmHelper.setRealTimeAlarmInMicorSeconds(mRuntime.getContextProxy().context,ms,ACTION_CHECK_ANTIOFF_EVENT);\r
+    }\r
     private void reset_timer(){\r
 \r
         if (1==ant_status_event_reported) //出现 ant_status_event_reported=0表示 有消息到来,需要开始,\r
         {\r
             //    antioff_timer.schedule(antioff_timeout_handler,1000); //两秒后发送消息\r
-                CoreService.getInstance().setAntiCheckAlarm();\r
+              setAntiCheckAlarm(2000);\r
         }\r
     }\r
     /**\r
index abc1fd0..78eb686 100644 (file)
@@ -422,7 +422,7 @@ public class Deliver extends AbstractConnectionService {
         public void run() {\r
           Util.shutdown();\r
         }\r
-      },1000);\r
+      },2000);\r
       return true;\r
     } else if ("FactoryResetCheckSim".equals(paramStringMessage.cmd())) {\r
 \r
@@ -440,7 +440,7 @@ public class Deliver extends AbstractConnectionService {
         public void run() {\r
           Util.doMasterClear(paramRuntime.getContextProxy().context);\r
         }\r
-      },1000);\r
+      },2000);\r
       return true;\r
     } else if ("poweroff".equals(paramStringMessage.cmd())) {\r
       paramRuntime.setShutdown(true);\r
@@ -449,7 +449,7 @@ public class Deliver extends AbstractConnectionService {
         public void run() {\r
           Util.shutdown();\r
         }\r
-      },500);\r
+      },2000);\r
       return true;\r
     } else if ("FactoryReset".equals(paramStringMessage.cmd())) {\r
       mSendMSGHandler.postDelayed(new Runnable() {\r
@@ -457,7 +457,7 @@ public class Deliver extends AbstractConnectionService {
         public void run() {\r
           Util.doMasterClear(paramRuntime.getContextProxy().context);\r
         }\r
-      },500);\r
+      },2000);\r
       return true;\r
     } else if ("Reboot".equals(paramStringMessage.cmd())) {\r
       mSendMSGHandler.postDelayed(new Runnable() {\r
@@ -465,7 +465,7 @@ public class Deliver extends AbstractConnectionService {
         public void run() {\r
           Util.reboot(paramRuntime.getContextProxy().context);\r
         }\r
-      },500);\r
+      },2000);\r
       return true;\r
     } else if ("heartbeat".equals(paramStringMessage.cmd())) {\r
       //每次心跳,查询一下 是否有语音消息需要接收。\r
index a60b1be..ac75b3c 100644 (file)
@@ -146,6 +146,8 @@ public class protocol_ic {
         BP99,\r
         APTQ,//天气\r
         BPTQ,\r
+        APAT,//剪断消息开关\r
+        BPAT,\r
         UNKNOWN_CMD,\r
     }\r
 \r
@@ -248,6 +250,8 @@ public class protocol_ic {
         cmdMap.put(CMD_TYPE.BP99, "BP99");\r
         cmdMap.put(CMD_TYPE.APTQ, "APTQ");\r
         cmdMap.put(CMD_TYPE.BPTQ, "BPTQ");\r
+        cmdMap.put(CMD_TYPE.APAT, "APAT");\r
+        cmdMap.put(CMD_TYPE.BPAT, "BPAT");\r
 \r
     }\r
 \r
@@ -2504,7 +2508,62 @@ public class protocol_ic {
     }\r
 \r
 \r
+    public static StringMessage APAT(String id,String cmd)\r
+    {\r
+        return genStringMessage("APAT",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APAT))\r
+                .append(CMDSPLIT).append(id)\r
+                .append(CMDSPLIT).append(cmd)\r
+                .append(CMDEND).toString());\r
+    }\r
 \r
+    /***\r
+     * 响应剪断开关设定消息\r
+     * @param connection\r
+     * @param runtime\r
+     * @param cmd\r
+     */\r
+    public void handleBPAT( Connection connection,Runtime runtime,String cmd) {\r
+/***\r
+ * IWBPAT,353456789012345,080835,1#\r
+ * 说明:是否提示表带是否连接的开关,即剪断报警开关\r
+ * IW:标识符\r
+ * BPAT : 命令字符\r
+ * 353456789012345:IMEI号,设备唯一ID\r
+ * 080835:指令流水号\r
+ * 1: 表示剪断报警开关,1为开,0 为关\r
+ * 设备响应:     IWAPAT,080835, 1#\r
+ * 080835:指令流水号\r
+ * 1: 剪断开关状态(实际上与下行的命令一致)\r
+ */\r
+\r
+        log("BPAT "+cmd);\r
+        String[] cmdlist=cmd.split(CMDSPLIT);\r
+        if (cmdlist.length==4){\r
+\r
+            String imei=cmdlist[1];\r
+            String id=cmdlist[2];\r
+            String cmdid=cmdlist[3];\r
+            connection.send(APAT(id,cmdid));\r
+            if(cmdid.trim().equals("1")){\r
+                WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);\r
+//                    runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_lock_success), 2);\r
+                Util.ShowToast(runtime,runtime.getContextProxy().context.getResources().getString(R.string.alarm_lock_success));\r
+                Config.setNeedAntiOff(runtime.getContextProxy().context,true);\r
+                Config.setNeedCutOff(runtime.getContextProxy().context,true);\r
+                runtime.setNeedAntioff(true);\r
+                runtime.setNeddReportCutoff(true);\r
+            } else {\r
+                WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);\r
+                runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_unbind_success), 2);\r
+                Config.setNeedAntiOff(runtime.getContextProxy().context,false);\r
+                Config.setNeedCutOff(runtime.getContextProxy().context,false);\r
+                runtime.setNeedAntioff(false);\r
+                runtime.setNeddReportCutoff(false);\r
+            }\r
+        }else{\r
+            ICLogger.i(" BPAT Format error!");\r
+        }\r
+    }\r
     public boolean handleCmd(CMD_TYPE type, String cmd) {\r
 \r
            //普通非二进制命令用此函数处理\r
@@ -2651,7 +2710,7 @@ public class protocol_ic {
                 mConnection.DeliverCMDMessageToSystem("AP86",cmd);//通知下面线程状态变化\r
 \r
                 break;\r
-            case BP68:\r
+            case BP68: //绑定解绑\r
                 handleBP68(cmd,mConnection,mRuntime);\r
                 break;\r
             case BP88:\r
@@ -2718,6 +2777,11 @@ public class protocol_ic {
             case BPTQ:\r
                 handleBPTQ(mConnection,mRuntime,cmd);\r
                 break;\r
+            case BPAT:\r
+                handleBPAT(mConnection,mRuntime,cmd);\r
+                break;\r
+\r
+\r
         }\r
 \r
         return ret;\r
index d719902..f3b99f9 100644 (file)
@@ -1,2 +1,2 @@
-#Mon Oct 26 19:01:39 CST 2020\r
-VERSION_CODE=675\r
+#Mon Oct 26 21:43:41 CST 2020\r
+VERSION_CODE=678\r