+++ b/frameworks/base/services/core/java/com/android/server/BatteryService.java
@@ -358,6 +358,10 @@ public final class BatteryService extends SystemService {
}
private boolean shouldShutdownLocked() {
+ // 电量低于5%且没有接任何电源
+ if(mHealthInfo.batteryLevel < 5 && !isPoweredLocked(BatteryManager.BATTERY_PLUGGED_ANY)) {
+ return true;
+ }
if (mHealthInfo.batteryLevel > 0) {
return false;
}
@@ -366,7 +370,7 @@ public final class BatteryService extends SystemService {
if (!mHealthInfo.batteryPresent) {
return false;
}
修改完后编译刷机遇到一个奇怪的问题,在MT6771 Android10 user版本的平台上,如果设备电池电量小于5%的话,插着USB充电开机的时候系统运行到我修改的地方就会自动关机。修改的代码是两个条件,电量小于5%和没有接任何电源这两个条件同时成立的时候才会执行关机操作,但是代码只判断了电量小于5%就执行关机了,而在userdebug 版本上没有这个问题,这有点奇怪. 日后有机会看能不能了解下什么原理导致user版本开机检测不到充电状态