Shut down when the battery does not exist
Issue: FP3-A11#233
Change-Id: I3bb6fc55465d284a42b56979f4a53c59f6c77153
diff --git a/services/core/java/com/android/server/BatteryService.java b/services/core/java/com/android/server/BatteryService.java
index c9ba58a..2a29693 100644
--- a/services/core/java/com/android/server/BatteryService.java
+++ b/services/core/java/com/android/server/BatteryService.java
@@ -422,6 +422,25 @@
}
}
+ private void shutdownIfNoBatteryLocked() {
+ // If the battery does not exist, it will shut down immediately.
+ if (mHealthInfo.batteryPresent == false) {
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ if (mActivityManagerInternal.isSystemReady()) {
+ Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
+ intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
+ intent.putExtra(Intent.EXTRA_REASON,
+ PowerManager.SHUTDOWN_LOW_BATTERY);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ mContext.startActivityAsUser(intent, UserHandle.CURRENT);
+ }
+ }
+ });
+ }
+ }
+
private void update(android.hardware.health.V2_1.HealthInfo info) {
traceBegin("HealthInfoUpdate");
@@ -500,6 +519,7 @@
shutdownIfNoPowerLocked();
shutdownIfOverTempLocked();
+ shutdownIfNoBatteryLocked();
if (force || (mHealthInfo.batteryStatus != mLastBatteryStatus ||
mHealthInfo.batteryHealth != mLastBatteryHealth ||