优化电池检查逻辑,开机,心跳,进行全程电量比对。
authorsnickersun <scy@incartech.cn>
Wed, 16 Dec 2020 08:37:38 +0000 (16:37 +0800)
committersnickersun <scy@incartech.cn>
Wed, 16 Dec 2020 08:37:38 +0000 (16:37 +0800)
解决之前25~15之间不会接触低电状态,以及心跳检测的时候电压区间检测不完整的问题。

app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java

index 3535df3..98e942b 100644 (file)
@@ -1173,13 +1173,13 @@ public class CoreService extends Service {
                         //      ICLogger.i("");
                         //  }
                     }
-                    //检测电池电量 并上报低电报警
-                    batteryUtil.getBatteryLevel(this);
-                    setHeartAlarm();
-                    if (Config.LOG_TOFILE)
-                        ICLogger.logToFile("alarmCycle", "HEART_ALARM alarmCycle  ");
-                    return Service.START_STICKY;
                 }
+                //检测电池电量 并上报低电报警
+                batteryUtil.getBatteryLevel(this);
+                setHeartAlarm();
+                if (Config.LOG_TOFILE)
+                    ICLogger.logToFile("alarmCycle", "HEART_ALARM alarmCycle  ");
+                return Service.START_STICKY;
             }else if (ACTION_LOCATION_ALARM.equals(paramIntent.getAction())) {
 
 
index 28c6d6f..1b7cb2a 100644 (file)
@@ -84,43 +84,8 @@ public class BatteryUtil {
           msg.append("BatteryLevel "+batLevel + " BatteryVotage "+batteryVolt+"; ");
           if (Config.LOG_TOFILE)ICLogger.logToFile("Battery",msg.toString());
           ICLogger.i(msg.toString());
-          if (batLevel >= 100) {
-            mRuntime.setBattery(String.format("%03d",100));
-            mRuntime.setBattery(100);
-            mRuntime.setHaveBatteryChange(false);
-            mRuntime.setBatteryLow(false);
-          } else if (batLevel<100 && batLevel >= 25) {
-            mRuntime.setBattery(String.format("%03d",batLevel));
-            mRuntime.setBattery(batLevel);
-            mRuntime.setHaveBatteryChange(false);
-            mRuntime.setBatteryLow(false);
-          } else if (batLevel<25 && batLevel > 15) {
-            mRuntime.setBattery(String.format("%03d",batLevel));
-            mRuntime.setBattery(batLevel);
-            mRuntime.setHaveBatteryChange(true);
-          } else if (batLevel<=15 && batLevel > 10) {
-            if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow  less than 15%!");
-            checkAndSendBatteryEvent(param1Context,mRuntime);
-            mRuntime.setBattery(String.format("%03d",batLevel));
-            mRuntime.setBattery(batLevel);
-            mRuntime.setHaveBatteryChange(true);
-            mRuntime.setBatteryLow(true);
-          } else if (batLevel<=10 && batLevel > 5) {
-            if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow  less than 10%!");
-            checkAndSendBatteryEvent(param1Context,mRuntime);
-            mRuntime.setBattery(String.format("%03d",batLevel));
-            mRuntime.setBattery(batLevel);
-            mRuntime.setHaveBatteryChange(true);
-            mRuntime.setBatteryLow(true);
-          } else {
-
-            if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow less than 5% !");
-            checkAndSendBatteryEvent(param1Context,mRuntime);
-            mRuntime.setBattery(String.format("%03d",batLevel));
-            mRuntime.setBattery(batLevel);
-            mRuntime.setHaveBatteryChange(true);
-            mRuntime.setBatteryLow(true);
-          }
+          //处理电压
+          process_battery_level(param1Context,batLevel);
 
         }else if (Intent.ACTION_BATTERY_LOW.equals(intent.getAction())) {
         //  mRuntime.setBatteryLow(true);
@@ -159,6 +124,47 @@ public class BatteryUtil {
     AudioService.getInstance().play(context.getAssets(), "warning.mp3");
   }
 
+  //根据电池电压进行低电报警等状态处理
+  public void process_battery_level(Context param1Context, int batLevel){
+    if (batLevel >= 100) {
+      mRuntime.setBattery(String.format("%03d",100));
+      mRuntime.setBattery(100);
+      mRuntime.setHaveBatteryChange(false);
+      mRuntime.setBatteryLow(false);
+    } else if (batLevel<100 && batLevel >= 25) {
+      mRuntime.setBattery(String.format("%03d",batLevel));
+      mRuntime.setBattery(batLevel);
+      mRuntime.setHaveBatteryChange(false);
+      mRuntime.setBatteryLow(false);
+    } else if (batLevel<25 && batLevel > 15) {
+      mRuntime.setBattery(String.format("%03d",batLevel));
+      mRuntime.setBattery(batLevel);
+      mRuntime.setHaveBatteryChange(true);
+      mRuntime.setBatteryLow(false);
+    } else if (batLevel<=15 && batLevel > 10) {
+      if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow  less than 15%!");
+      checkAndSendBatteryEvent(param1Context,mRuntime);
+      mRuntime.setBattery(String.format("%03d",batLevel));
+      mRuntime.setBattery(batLevel);
+      mRuntime.setHaveBatteryChange(true);
+      mRuntime.setBatteryLow(true);
+    } else if (batLevel<=10 && batLevel > 5) {
+      if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow  less than 10%!");
+      checkAndSendBatteryEvent(param1Context,mRuntime);
+      mRuntime.setBattery(String.format("%03d",batLevel));
+      mRuntime.setBattery(batLevel);
+      mRuntime.setHaveBatteryChange(true);
+      mRuntime.setBatteryLow(true);
+    } else {
+      if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow less than 5% !");
+      checkAndSendBatteryEvent(param1Context,mRuntime);
+      mRuntime.setBattery(String.format("%03d",batLevel));
+      mRuntime.setBattery(batLevel);
+      mRuntime.setHaveBatteryChange(true);
+      mRuntime.setBatteryLow(true);
+    }
+  }
+
   public static void checkAndSendBatteryEvent(Context context, Runtime runtime){
 
     //没有充电,上次电池level > 15% , 上次电池并且不是 低电状态,则报警
@@ -258,24 +264,8 @@ public class BatteryUtil {
     int batLevel = (intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) * 100) /
             intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
 
-    if( batLevel>15) {
-
+    process_battery_level(context,batLevel);
 
-    }else if (batLevel<=15 && batLevel > 5) {
-      if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow  less than 15%!");
-      checkAndSendBatteryEvent(context,mRuntime);
-      mRuntime.setBattery(String.format("%03d",batLevel));
-      mRuntime.setBattery(batLevel);
-      mRuntime.setHaveBatteryChange(true);
-      mRuntime.setBatteryLow(true);
-    } else {
-      if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow less than 5% !");
-      checkAndSendBatteryEvent(context,mRuntime);
-      mRuntime.setBattery(String.format("%03d",batLevel));
-      mRuntime.setBattery(batLevel);
-      mRuntime.setHaveBatteryChange(true);
-      mRuntime.setBatteryLow(true);
-    }
     return batLevel;
   }