平台:exynos 8895
Android 7.0
Android本身自带低电量操作的,可以按需修改,默认描述如下:
1.BatteryWarningLevel=15%,低于15%电池图标会变成红色;现在手机一般设置为20%
2.criticalBatteryWarningLevel=5%,低于5%系统会在状态栏弹出低电量警告提示
3.关机电量0%,电量为0%且没有充电,系统会自动关机
具体修改位置如下:
diff --git a/frameworks/base/core/res/res/values/config.xml b/frameworks/base/core/res/res/values/config.xml
index 85a4b07..789d6c3 100755
--- a/frameworks/base/core/res/res/values/config.xml
+++ b/frameworks/base/core/res/res/values/config.xml
@@ -1014,7 +1014,7 @@
<!-- Display low battery warning when battery level dips to this value.
Also, the battery stats are flushed to disk when we hit this level. -->
- <integer name="config_criticalBatteryWarningLevel">5</integer>
+ <integer name="config_criticalBatteryWarningLevel">10</integer>
<!-- Shutdown if the battery temperature exceeds (this value * 0.1) Celsius. -->
<integer name="config_shutdownBatteryTemperature">680</integer>
@@ -1024,7 +1024,7 @@
<!-- Close low battery warning when battery level reaches the lowBatteryWarningLevel
plus this -->
- <integer name="config_lowBatteryCloseWarningBump">5</integer>
+ <integer name="config_lowBatteryCloseWarningBump">10</integer>
<!-- Default color for notification LED. -->
<color name="config_defaultNotificationColor">#ffffffff</color>
diff --git a/frameworks/base/services/core/java/com/android/server/BatteryService.java b/frameworks/base/services/core/java/com/android/server/BatteryService.java
index 06a9e63..5094eff 100644
--- a/frameworks/base/services/core/java/com/android/server/BatteryService.java
+++ b/frameworks/base/services/core/java/com/android/server/BatteryService.java
@@ -287,7 +287,7 @@ public final class BatteryService extends SystemService {
private void shutdownIfNoPowerLocked() {
// shut down gracefully if our battery is critically low and we are not powered.
// wait until the system has booted before attempting to display the shutdown dialog.
- if (mBatteryProps.batteryLevel == 0 && !isPoweredLocked(BatteryManager.BATTERY_PLUGGED_ANY)) {
+ if (mBatteryProps.batteryLevel == 5 && !isPoweredLocked(BatteryManager.BATTERY_PLUGGED_ANY)) {
mHandler.post(new Runnable() {
@Override
public void run() {