release V516
authorsnickersun <scy@incartech.cn>
Sat, 5 Sep 2020 08:29:47 +0000 (16:29 +0800)
committersnickersun <scy@incartech.cn>
Sat, 5 Sep 2020 08:29:47 +0000 (16:29 +0800)
A9, 1、修复5分钟报警的声音和震动。2、去掉可能造成release失败的wakelock 3、给fzd和mqtt添加alarm的新函数

app/release/ICSer_V516_2009051621_release.apk [moved from app/release/ICSer_V515_2009032133_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/GPSActivity.java
app/src/main/java/com/enqualcomm/support/adapter/LBSHelper.java
app/src/main/java/com/enqualcomm/support/bean/Runtime.java
app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java
app/src/main/java/com/enqualcomm/support/utils/WakeLockUtil.java
app/src/main/java/com/ic/protocols/protocol_fzd.java
app/src/main/java/com/ic/protocols/protocol_mqtt.java
app/version_code.properties

similarity index 78%
rename from app/release/ICSer_V515_2009032133_release.apk
rename to app/release/ICSer_V516_2009051621_release.apk
index 3785f12..f8b3d7f 100644 (file)
Binary files a/app/release/ICSer_V515_2009032133_release.apk and b/app/release/ICSer_V516_2009051621_release.apk differ
index 3c65cac..d751308 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":515,"versionName":"2009032133","enabled":true,"outputFile":"ICSer_V515_2009032133_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V515_2009032133_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":516,"versionName":"2009051621","enabled":true,"outputFile":"ICSer_V516_2009051621_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V516_2009051621_release.apk","properties":{}}]
\ No newline at end of file
index 94e9114..f8039a4 100644 (file)
@@ -20,6 +20,7 @@ import com.enqualcomm.support.bean.ICLocation;
 import com.enqualcomm.support.bean.SleepInfo;\r
 import com.enqualcomm.support.bean.SleepRecord;\r
 import com.enqualcomm.support.service.AntiMonitorService;\r
+import com.enqualcomm.support.service.AudioService;\r
 import com.enqualcomm.support.utils.CellInfoUtil;\r
 import com.enqualcomm.support.utils.DeviceInfoUtil;\r
 import com.enqualcomm.support.utils.LedUtil;\r
@@ -89,6 +90,7 @@ import static com.enqualcomm.support.Constants.STEP_COUNT_ALARM_ACTION;
 import static com.enqualcomm.support.Constants.TEMP_ALARM;\r
 import static com.enqualcomm.support.bean.ICLocation.*;\r
 import static com.ic.protocols.protocolAPIHelper.getTemperatureMSG;\r
+import static java.lang.Thread.sleep;\r
 \r
 \r
 public class CoreService extends Service {\r
@@ -738,8 +740,29 @@ public class CoreService extends Service {
         if(runtime.Anti_off_flag>0 && Config.needAllwaysAlarmAntiOff){\r
             runtime.Anti_off_flag++;\r
             WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);\r
-            antiservice.send_anti_event_broadcast(1);\r
 \r
+            if (Config.A9_noBroadCastActionStrip) {\r
+                if(Config.needBroadcastAntiAlarm) {\r
+\r
+                    AudioService.getInstance().play(runtime.getContextProxy().context.getAssets(), "antioff.mp3");\r
+\r
+                    new Handler().postDelayed(new Runnable() {\r
+                        @Override\r
+                        public void run() {\r
+                            AudioService.getInstance().stop();\r
+                        }\r
+                    },5000);\r
+                    VibrateUtil.getInstance(runtime.getContextProxy().context).VibrateOnOnce(true);\r
+\r
+                    try {\r
+                        sleep(1000);\r
+                    } catch (InterruptedException e) {\r
+                        e.printStackTrace();\r
+                    }//delay一会儿再发消息,以屏没有来得急亮起,免界面不响应。\r
+                    antiservice.send_anti_event_broadcast(1);\r
+                }\r
+\r
+            }\r
         }\r
 \r
     }\r
index dc49c21..7eec8db 100644 (file)
@@ -9,6 +9,7 @@ import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.LinearLayoutManager;\r
 import android.support.v7.widget.RecyclerView;\r
 import android.view.View;\r
+import android.view.WindowManager;\r
 import android.widget.TextView;\r
 \r
 import com.enqualcomm.support.NMEAListener.location_callback;\r
@@ -51,6 +52,7 @@ public class GPSActivity extends Activity implements location_callback {
         mStar.setText("0 in 0/ inMap 0");\r
         mHoop.setText("0.0米");\r
         mSearchCount.setText("0秒");\r
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);\r
     }\r
 \r
     @Override\r
@@ -104,25 +106,18 @@ public class GPSActivity extends Activity implements location_callback {
         }\r
         return entity;\r
     }\r
-    PowerManager.WakeLock screenOnWakelock=null;\r
+\r
     @Override\r
     protected  void onResume() {\r
         super.onResume();\r
         NMEAListener.set_callback(this);\r
-        if (screenOnWakelock==null)\r
-            screenOnWakelock = WakeLockUtil.getScreenOnWakeLock(this,GPSActivity.class.getSimpleName());\r
+\r
     }\r
 \r
     @Override\r
     protected void onPause() {\r
         super.onPause();\r
         showmessage=false;\r
-        if(screenOnWakelock!=null) {\r
-            if (screenOnWakelock.isHeld()) {\r
-                screenOnWakelock.release();\r
-            }\r
-            screenOnWakelock=null;\r
-        }\r
 \r
     }\r
 }\r
index 44814e7..8fce0e2 100644 (file)
@@ -38,11 +38,6 @@ import java.util.Iterator;
 import java.util.List;\r
 import java.util.concurrent.TimeUnit;\r
 \r
-import rx.Observable;\r
-import rx.Single;\r
-import rx.android.schedulers.AndroidSchedulers;\r
-import rx.functions.Action1;\r
-\r
 import static android.net.wifi.WifiManager.WIFI_STATE_DISABLED;\r
 import static android.net.wifi.WifiManager.WIFI_STATE_DISABLING;\r
 import static android.net.wifi.WifiManager.WIFI_STATE_ENABLED;\r
@@ -139,9 +134,9 @@ public class LBSHelper {
 //            Single.just(null).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Object>() {\r
 //            public void call(Object param1Object) {\r
 \r
-            Observable.timer(500L, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Long>() {\r
-                public void call(Long param1Long) {\r
-\r
+            new Handler().postDelayed(new Runnable() {\r
+                @Override\r
+                public void run() {\r
                     //由于wifi状态不好确认客户是如何设置的,干脆只有屏幕灭的时候才考虑关闭wifi ,防止在开启屏幕用来视频的时候被后台关掉\r
                     ICLogger.i("setWifiEnabled false");\r
 //                    if(SimSignalUtil.isScreenON(runtime.getContextProxy().context)==false) {\r
@@ -171,8 +166,7 @@ public class LBSHelper {
 \r
 \r
                 }\r
-\r
-            });\r
+            },500);\r
 \r
         }else{\r
             ICLogger.i("mMyWifiListener is null skip callback");\r
index a3576b6..9194644 100644 (file)
@@ -175,8 +175,11 @@ public class Runtime {
       ALARM_LOCK_WATCH,\r
       ALARM_TEMP_HIGH,\r
       ALARM_TEMP_LOW,\r
+      ALARM_POWER_OFF,\r
       ALARM_NONE,\r
     };\r
+\r
+  private AlarmType g_alarm=AlarmType.ALARM_NONE;\r
 /***\r
  *    00为报警状态,00为无任何报警(01:SOS,02:低电,03:脱落报警,04:佩戴提醒,05:剪断报警,06:跌倒报警,\r
  *    07:心率异常, 08:心率过高, 09:心率过低,10:收缩压过高,11:收缩压过低,12:舒张压过高,13:舒张压过低,\r
@@ -184,7 +187,7 @@ public class Runtime {
   */\r
    public void setAlarmType(AlarmType alarm){\r
 //    if ( !fall && !lowbattery && !sos && antioff)\r
-\r
+       g_alarm=alarm;\r
       switch (alarm){\r
           case ALARM_SOS:\r
               alarmType="01";\r
@@ -252,6 +255,7 @@ public class Runtime {
           case ALARM_TEMP_LOW:\r
               alarmType="18";\r
               break;\r
+          case ALARM_POWER_OFF:\r
           case ALARM_NONE:\r
           default:\r
               alarmType="00";\r
@@ -624,8 +628,117 @@ public class Runtime {
         return sb.toString();\r
     }\r
 \r
-    public String getFZDDevStatus(){\r
-      return "00000000";\r
+    public String fzdAlarmStatus="00000000";\r
+\r
+\r
+    /***\r
+     * 终端状态    00000000 ( 16 进\r
+     * 制)  用二进制字符串表示为\r
+     * 0000 0000 0000 0010 0000 0000 0000 0000 含义如下:\r
+     * 左边高 16bit 表示报警,右边低 16bit 表示状态. Bit 位(0 开始)    含义(1 有效)\r
+     * 0低电状态\r
+     * 1出围栏状态(目前没用到)\r
+     * 2进围栏状态(目前没用到)\r
+     * 3手环戴上取下状态\r
+     * 4手表运行静止状态\r
+     * 16SOS 报警\r
+     * 17低电报警\r
+     * 18出围栏报警(目前没用到)\r
+     * 19进围栏报警(目前没用到)\r
+     * 20手环拆除报警\r
+     * 21跌倒报警\r
+     * 22震动报警\r
+     * 23断电报警\r
+     * 24心率骤降报警\r
+     * 25车辆启动\r
+     *                 比如 00200010,即表示00000000001000000000000000010000\r
+     * 这个项目需要支持防拆 20、00000000000100000000000000000000   0x 00100000 1048576\r
+     * 低电 17、00000000000000100000000000000000    0x 00020000 131072\r
+     * 离线 23、00000000100000000000000000000000    0x 00800000 8388608\r
+     * 逃逸报警 18\  00000000000001000000000000000000   0x 00040000  262144\r
+     * 分别是第四位为 1,第 21 位为 1,对应 21 位是跌倒报警\r
+     * @param runtime\r
+     * @return\r
+     */\r
+    public String getFZDDevStatus(Runtime runtime){\r
+        String alarmType1="00000000";\r
+        switch (runtime.g_alarm){\r
+            case ALARM_SOS:\r
+            //    alarmType1="01";\r
+                break;\r
+            case ALARM_LOWBATTERY:\r
+                alarmType1="00020000";\r
+                break;\r
+            case ALARM_ANTIOFF:\r
+                alarmType1="00100000";\r
+                break;\r
+            case ALARM_WEARED:\r
+//                alarmType1="04";\r
+                break;\r
+            case ALARM_CUTOFF:\r
+//                alarmType1="05";\r
+                break;\r
+            case ALARM_FALL:\r
+//                alarmType1="06";\r
+                break;\r
+\r
+            case ALARM_ABNORMAL_HEART_RATE:\r
+//                alarmType1="07";\r
+                break;\r
+\r
+            case ALARM_HEART_RATE_HIGH:\r
+//                alarmType1="08";\r
+                break;\r
+\r
+            case ALARM_HEART_RATE_LOW:\r
+//                alarmType1="09";\r
+                break;\r
+\r
+            case ALARM_BPH_HIGH:\r
+//                alarmType1="10";\r
+                break;\r
+\r
+            case ALARM_BPH_LOW:\r
+//                alarmType1="11";\r
+                break;\r
+\r
+            case ALARM_BPL_HIGH:\r
+//                alarmType1="12";\r
+                break;\r
+\r
+            case ALARM_BPL_LOW:\r
+//                alarmType1="13";\r
+                break;\r
+\r
+            case ALARM_SEDENTARY:\r
+//                alarmType1="14";\r
+                break;\r
+\r
+            case ALARM_ILLEGAL_CUTOFF:\r
+//                alarmType1="15";\r
+                break;\r
+\r
+            case ALARM_LOCK_WATCH:\r
+//                alarmType1="16";\r
+                break;\r
+\r
+            case ALARM_TEMP_HIGH:\r
+//                alarmType1="17";\r
+                break;\r
+\r
+            case ALARM_TEMP_LOW:\r
+//                alarmType1="18";\r
+                break;\r
+            case ALARM_POWER_OFF:\r
+                alarmType1="00800000";\r
+                break;\r
+            case ALARM_NONE:\r
+            default:\r
+//                alarmType1="00000000";\r
+                break;\r
+        }\r
+        fzdAlarmStatus=alarmType1;\r
+      return fzdAlarmStatus;\r
     }\r
   public String getGPSHeading(){\r
     int headingi=(int)gpsp.getLocation().heading;\r
index d60005b..fe6a39b 100644 (file)
@@ -238,10 +238,10 @@ public class ProcessReceiver extends BroadcastReceiver {
 \r
   private void screenOn(Context paramContext) {\r
     final PowerManager.WakeLock wakelock = ((PowerManager)paramContext.getSystemService(Context.POWER_SERVICE)).newWakeLock(ACQUIRE_CAUSES_WAKEUP| SCREEN_DIM_WAKE_LOCK, ProcessReceiver.class.getSimpleName());\r
-    wakelock.acquire();\r
-    Observable.timer(5000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
-          public void call(Long param1Long) { wakelock.release(); }\r
-        });\r
+    wakelock.acquire(5000);\r
+//    Observable.timer(5000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
+//          public void call(Long param1Long) { wakelock.release(); }\r
+//        });\r
   }\r
 \r
   @Override\r
index 3f3bc56..a6c5e15 100644 (file)
@@ -1,40 +1,17 @@
 package com.enqualcomm.support.utils;\r
 \r
 import android.content.Context;\r
-import android.os.Handler;\r
-import android.os.Message;\r
 import android.os.PowerManager;\r
 \r
-import com.enqualcomm.support.service.AudioService;\r
-\r
-import java.util.Objects;\r
-import java.util.concurrent.TimeUnit;\r
-\r
-import rx.Observable;\r
-import rx.functions.Action1;\r
-\r
 import static android.os.PowerManager.ACQUIRE_CAUSES_WAKEUP;\r
 import static android.os.PowerManager.SCREEN_DIM_WAKE_LOCK;\r
 \r
 \r
 public class WakeLockUtil {\r
 \r
-  public static PowerManager.WakeLock getScreenOnWakeLock(Context context, String tag) {\r
-    PowerManager.WakeLock wakeLock = ((PowerManager)(context.getSystemService(Context.POWER_SERVICE))).newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, tag);\r
-//    wakeLock.acquire(900000L);\r
-    wakeLock.acquire();\r
-    return wakeLock;\r
-  }\r
-  public static void ScreenOnWakeLockTemperary(Context context) {\r
+public static void ScreenOnWakeLockTemperary(Context context) {\r
     final PowerManager.WakeLock wakelock = ((PowerManager)context.getSystemService(Context.POWER_SERVICE)).newWakeLock(ACQUIRE_CAUSES_WAKEUP| SCREEN_DIM_WAKE_LOCK, WakeLockUtil.class.getSimpleName());\r
-    wakelock.acquire();\r
-    new Handler().postDelayed(new Runnable() {\r
-      @Override\r
-      public void run() {\r
-        wakelock.release();\r
-      }\r
-    },5000L);\r
-\r
+    wakelock.acquire(5000);\r
   }\r
 \r
 }\r
index 3cb2633..ca501a9 100644 (file)
@@ -412,7 +412,7 @@ public class protocol_fzd {
                 .append(runtime.getBattery()).append(CMDSPLIT)\r
                 .append(runtime.getTotalStepCount()).append(CMDSPLIT)\r
                 .append(runtime.getRolltimes()).append(CMDSPLIT)\r
-                .append(runtime.getFZDDevStatus()).append(CMDSPLIT)\r
+                .append(runtime.getFZDDevStatus(runtime)).append(CMDSPLIT)\r
                 .append(runtime.getFZDLBSMultiStationData()).append(CMDSPLIT)\r
                 .append(runtime.getFZDWifiData());\r
 \r
index 02c30f8..3cc91fe 100644 (file)
@@ -337,7 +337,7 @@ public class protocol_mqtt {
                 .append(runtime.getBattery()).append(CMDSPLIT)\r
                 .append(runtime.getTotalStepCount()).append(CMDSPLIT)\r
                 .append(runtime.getRolltimes()).append(CMDSPLIT)\r
-                .append(runtime.getFZDDevStatus()).append(CMDSPLIT)\r
+                .append(runtime.getFZDDevStatus(runtime)).append(CMDSPLIT)\r
                 .append(runtime.getFZDLBSMultiStationData()).append(CMDSPLIT)\r
                 .append(runtime.getFZDWifiData());\r
 \r
index 30519d7..35c1632 100644 (file)
@@ -1,2 +1,2 @@
-#Thu Sep 03 21:33:40 CST 2020\r
-VERSION_CODE=515\r
+#Sat Sep 05 16:21:32 CST 2020\r
+VERSION_CODE=516\r