Loading core/java/android/os/PowerManager.java +29 −1 Original line number Diff line number Diff line Loading @@ -442,6 +442,20 @@ public final class PowerManager { */ public static final String SHUTDOWN_USER_REQUESTED = "userrequested"; /** * The value to pass as the 'reason' argument to android_reboot() when battery temperature * is too high. * @hide */ public static final String SHUTDOWN_BATTERY_THERMAL_STATE = "thermal,battery"; /** * The value to pass as the 'reason' argument to android_reboot() when device is running * critically low on battery. * @hide */ public static final String SHUTDOWN_LOW_BATTERY = "battery"; /** * @hide */ Loading @@ -451,7 +465,9 @@ public final class PowerManager { SHUTDOWN_REASON_SHUTDOWN, SHUTDOWN_REASON_REBOOT, SHUTDOWN_REASON_USER_REQUESTED, SHUTDOWN_REASON_THERMAL_SHUTDOWN SHUTDOWN_REASON_THERMAL_SHUTDOWN, SHUTDOWN_REASON_LOW_BATTERY, SHUTDOWN_REASON_BATTERY_THERMAL }) public @interface ShutdownReason {} Loading Loading @@ -485,6 +501,18 @@ public final class PowerManager { */ public static final int SHUTDOWN_REASON_THERMAL_SHUTDOWN = 4; /** * constant for shutdown reason being low battery. * @hide */ public static final int SHUTDOWN_REASON_LOW_BATTERY = 5; /** * constant for shutdown reason being critical battery thermal state. * @hide */ public static final int SHUTDOWN_REASON_BATTERY_THERMAL = 6; final Context mContext; final IPowerManager mService; final Handler mHandler; Loading core/java/com/android/internal/app/ShutdownActivity.java +4 −3 Original line number Diff line number Diff line Loading @@ -41,6 +41,9 @@ public class ShutdownActivity extends Activity { mReboot = Intent.ACTION_REBOOT.equals(intent.getAction()); mConfirm = intent.getBooleanExtra(Intent.EXTRA_KEY_CONFIRM, false); mUserRequested = intent.getBooleanExtra(Intent.EXTRA_USER_REQUESTED_SHUTDOWN, false); final String reason = mUserRequested ? PowerManager.SHUTDOWN_USER_REQUESTED : intent.getStringExtra(Intent.EXTRA_REASON); Slog.i(TAG, "onCreate(): confirm=" + mConfirm); Thread thr = new Thread("ShutdownActivity") { Loading @@ -52,9 +55,7 @@ public class ShutdownActivity extends Activity { if (mReboot) { pm.reboot(mConfirm, null, false); } else { pm.shutdown(mConfirm, mUserRequested ? PowerManager.SHUTDOWN_USER_REQUESTED : null, false); pm.shutdown(mConfirm, reason, false); } } catch (RemoteException e) { } Loading services/core/java/com/android/server/BatteryService.java +5 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.ActivityManagerInternal; import android.database.ContentObserver; import android.os.BatteryStats; import android.os.PowerManager; import android.os.ResultReceiver; import android.os.ShellCallback; import android.os.ShellCommand; Loading Loading @@ -291,6 +292,8 @@ public final class BatteryService extends SystemService { 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); } Loading @@ -310,6 +313,8 @@ public final class BatteryService extends SystemService { 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_BATTERY_THERMAL_STATE); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivityAsUser(intent, UserHandle.CURRENT); } Loading services/core/java/com/android/server/power/PowerManagerService.java +6 −0 Original line number Diff line number Diff line Loading @@ -206,6 +206,8 @@ public final class PowerManagerService extends SystemService private static final String REASON_REBOOT = "reboot"; private static final String REASON_USERREQUESTED = "shutdown,userrequested"; private static final String REASON_THERMAL_SHUTDOWN = "shutdown,thermal"; private static final String REASON_LOW_BATTERY = "shutdown,battery"; private static final String REASON_BATTERY_THERMAL_STATE = "shutdown,thermal,battery"; private static final String TRACE_SCREEN_ON = "Screen turning on"; Loading Loading @@ -4651,6 +4653,10 @@ public final class PowerManagerService extends SystemService return PowerManager.SHUTDOWN_REASON_USER_REQUESTED; case REASON_THERMAL_SHUTDOWN: return PowerManager.SHUTDOWN_REASON_THERMAL_SHUTDOWN; case REASON_LOW_BATTERY: return PowerManager.SHUTDOWN_REASON_LOW_BATTERY; case REASON_BATTERY_THERMAL_STATE: return PowerManager.SHUTDOWN_REASON_BATTERY_THERMAL; default: return PowerManager.SHUTDOWN_REASON_UNKNOWN; } Loading Loading
core/java/android/os/PowerManager.java +29 −1 Original line number Diff line number Diff line Loading @@ -442,6 +442,20 @@ public final class PowerManager { */ public static final String SHUTDOWN_USER_REQUESTED = "userrequested"; /** * The value to pass as the 'reason' argument to android_reboot() when battery temperature * is too high. * @hide */ public static final String SHUTDOWN_BATTERY_THERMAL_STATE = "thermal,battery"; /** * The value to pass as the 'reason' argument to android_reboot() when device is running * critically low on battery. * @hide */ public static final String SHUTDOWN_LOW_BATTERY = "battery"; /** * @hide */ Loading @@ -451,7 +465,9 @@ public final class PowerManager { SHUTDOWN_REASON_SHUTDOWN, SHUTDOWN_REASON_REBOOT, SHUTDOWN_REASON_USER_REQUESTED, SHUTDOWN_REASON_THERMAL_SHUTDOWN SHUTDOWN_REASON_THERMAL_SHUTDOWN, SHUTDOWN_REASON_LOW_BATTERY, SHUTDOWN_REASON_BATTERY_THERMAL }) public @interface ShutdownReason {} Loading Loading @@ -485,6 +501,18 @@ public final class PowerManager { */ public static final int SHUTDOWN_REASON_THERMAL_SHUTDOWN = 4; /** * constant for shutdown reason being low battery. * @hide */ public static final int SHUTDOWN_REASON_LOW_BATTERY = 5; /** * constant for shutdown reason being critical battery thermal state. * @hide */ public static final int SHUTDOWN_REASON_BATTERY_THERMAL = 6; final Context mContext; final IPowerManager mService; final Handler mHandler; Loading
core/java/com/android/internal/app/ShutdownActivity.java +4 −3 Original line number Diff line number Diff line Loading @@ -41,6 +41,9 @@ public class ShutdownActivity extends Activity { mReboot = Intent.ACTION_REBOOT.equals(intent.getAction()); mConfirm = intent.getBooleanExtra(Intent.EXTRA_KEY_CONFIRM, false); mUserRequested = intent.getBooleanExtra(Intent.EXTRA_USER_REQUESTED_SHUTDOWN, false); final String reason = mUserRequested ? PowerManager.SHUTDOWN_USER_REQUESTED : intent.getStringExtra(Intent.EXTRA_REASON); Slog.i(TAG, "onCreate(): confirm=" + mConfirm); Thread thr = new Thread("ShutdownActivity") { Loading @@ -52,9 +55,7 @@ public class ShutdownActivity extends Activity { if (mReboot) { pm.reboot(mConfirm, null, false); } else { pm.shutdown(mConfirm, mUserRequested ? PowerManager.SHUTDOWN_USER_REQUESTED : null, false); pm.shutdown(mConfirm, reason, false); } } catch (RemoteException e) { } Loading
services/core/java/com/android/server/BatteryService.java +5 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.ActivityManagerInternal; import android.database.ContentObserver; import android.os.BatteryStats; import android.os.PowerManager; import android.os.ResultReceiver; import android.os.ShellCallback; import android.os.ShellCommand; Loading Loading @@ -291,6 +292,8 @@ public final class BatteryService extends SystemService { 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); } Loading @@ -310,6 +313,8 @@ public final class BatteryService extends SystemService { 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_BATTERY_THERMAL_STATE); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivityAsUser(intent, UserHandle.CURRENT); } Loading
services/core/java/com/android/server/power/PowerManagerService.java +6 −0 Original line number Diff line number Diff line Loading @@ -206,6 +206,8 @@ public final class PowerManagerService extends SystemService private static final String REASON_REBOOT = "reboot"; private static final String REASON_USERREQUESTED = "shutdown,userrequested"; private static final String REASON_THERMAL_SHUTDOWN = "shutdown,thermal"; private static final String REASON_LOW_BATTERY = "shutdown,battery"; private static final String REASON_BATTERY_THERMAL_STATE = "shutdown,thermal,battery"; private static final String TRACE_SCREEN_ON = "Screen turning on"; Loading Loading @@ -4651,6 +4653,10 @@ public final class PowerManagerService extends SystemService return PowerManager.SHUTDOWN_REASON_USER_REQUESTED; case REASON_THERMAL_SHUTDOWN: return PowerManager.SHUTDOWN_REASON_THERMAL_SHUTDOWN; case REASON_LOW_BATTERY: return PowerManager.SHUTDOWN_REASON_LOW_BATTERY; case REASON_BATTERY_THERMAL_STATE: return PowerManager.SHUTDOWN_REASON_BATTERY_THERMAL; default: return PowerManager.SHUTDOWN_REASON_UNKNOWN; } Loading