From 6a362a97f71cda9eadfb72ce51e664c494cf7a04 Mon Sep 17 00:00:00 2001 From: Eric Olsen Date: Fri, 26 Mar 2010 15:38:41 -0700 Subject: [PATCH] Add thermal shutdown. If battery temp >= 68C. Change-Id: I625fa47939d8ecc532457b5c6e13f91d83bfbcc5 --- .../java/com/android/server/BatteryService.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/services/java/com/android/server/BatteryService.java b/services/java/com/android/server/BatteryService.java index 57944fbdfdccf..5cf61bdc659c9 100644 --- a/services/java/com/android/server/BatteryService.java +++ b/services/java/com/android/server/BatteryService.java @@ -177,6 +177,7 @@ class BatteryService extends Binder { void systemReady() { // check our power situation now that it is safe to display the shutdown dialog. shutdownIfNoPower(); + shutdownIfOverTemp(); } private final void shutdownIfNoPower() { @@ -190,6 +191,17 @@ class BatteryService extends Binder { } } + private final void shutdownIfOverTemp() { + // shut down gracefully if temperature is too high (> 68.0C) + // wait until the system has booted before attempting to display the shutdown dialog. + if (mBatteryTemperature > 680 && ActivityManagerNative.isSystemReady()) { + Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN); + intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.startActivity(intent); + } + } + private native void native_update(); private synchronized final void update() { @@ -199,6 +211,7 @@ class BatteryService extends Binder { long dischargeDuration = 0; shutdownIfNoPower(); + shutdownIfOverTemp(); mBatteryLevelCritical = mBatteryLevel <= CRITICAL_BATTERY_LEVEL; if (mAcOnline) {