Loading core/java/android/os/IPowerManager.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ interface IPowerManager void shutdown(boolean confirm, String reason, boolean wait); void crash(String message); int getLastShutdownReason(); int getLastSleepReason(); void setStayOnSetting(int val); void boostScreenBrightness(long time); Loading core/java/android/os/PowerManager.java +33 −0 Original line number Diff line number Diff line Loading @@ -396,6 +396,23 @@ public final class PowerManager { */ public static final int GO_TO_SLEEP_REASON_ACCESSIBILITY = 7; /** * @hide */ public static String sleepReasonToString(int sleepReason) { switch (sleepReason) { case GO_TO_SLEEP_REASON_APPLICATION: return "application"; case GO_TO_SLEEP_REASON_DEVICE_ADMIN: return "device_admin"; case GO_TO_SLEEP_REASON_TIMEOUT: return "timeout"; case GO_TO_SLEEP_REASON_LID_SWITCH: return "lid_switch"; case GO_TO_SLEEP_REASON_POWER_BUTTON: return "power_button"; case GO_TO_SLEEP_REASON_HDMI: return "hdmi"; case GO_TO_SLEEP_REASON_SLEEP_BUTTON: return "sleep_button"; case GO_TO_SLEEP_REASON_ACCESSIBILITY: return "accessibility"; default: return Integer.toString(sleepReason); } } /** * Go to sleep flag: Skip dozing state and directly go to full sleep. * @hide Loading Loading @@ -1309,6 +1326,22 @@ public final class PowerManager { } } /** * Returns the reason the device last went to sleep (i.e. the last value of * the second argument of {@link #goToSleep(long, int, int) goToSleep}). * * @return One of the {@code GO_TO_SLEEP_REASON_*} constants. * * @hide */ public int getLastSleepReason() { try { return mService.getLastSleepReason(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Intent that is broadcast when the state of {@link #isPowerSaveMode()} changes. * This broadcast is only sent to registered receivers. Loading services/core/java/com/android/server/power/PowerManagerService.java +24 −0 Original line number Diff line number Diff line Loading @@ -288,6 +288,9 @@ public final class PowerManagerService extends SystemService private long mLastWakeTime; private long mLastSleepTime; // Last reason the device went to sleep. private int mLastSleepReason; // Timestamp of the last call to user activity. private long mLastUserActivityTime; private long mLastUserActivityTimeNoChangeLights; Loading Loading @@ -1433,6 +1436,7 @@ public final class PowerManagerService extends SystemService } mLastSleepTime = eventTime; mLastSleepReason = reason; mSandmanSummoned = true; setWakefulnessLocked(WAKEFULNESS_DOZING, reason); Loading Loading @@ -3266,6 +3270,7 @@ public final class PowerManagerService extends SystemService pw.println(" mDeviceIdleTempWhitelist=" + Arrays.toString(mDeviceIdleTempWhitelist)); pw.println(" mLastWakeTime=" + TimeUtils.formatUptime(mLastWakeTime)); pw.println(" mLastSleepTime=" + TimeUtils.formatUptime(mLastSleepTime)); pw.println(" mLastSleepReason=" + PowerManager.sleepReasonToString(mLastSleepReason)); pw.println(" mLastUserActivityTime=" + TimeUtils.formatUptime(mLastUserActivityTime)); pw.println(" mLastUserActivityTimeNoChangeLights=" + TimeUtils.formatUptime(mLastUserActivityTimeNoChangeLights)); Loading Loading @@ -4404,6 +4409,19 @@ public final class PowerManagerService extends SystemService } } @Override // Binder call public int getLastSleepReason() { mContext.enforceCallingOrSelfPermission( android.Manifest.permission.DEVICE_POWER, null); final long ident = Binder.clearCallingIdentity(); try { return getLastSleepReasonInternal(); } finally { Binder.restoreCallingIdentity(ident); } } /** * Reboots the device. * Loading Loading @@ -4619,6 +4637,12 @@ public final class PowerManagerService extends SystemService } } private int getLastSleepReasonInternal() { synchronized (mLock) { return mLastSleepReason; } } private final class LocalService extends PowerManagerInternal { @Override public void setScreenBrightnessOverrideFromWindowManager(int screenBrightness) { Loading Loading
core/java/android/os/IPowerManager.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ interface IPowerManager void shutdown(boolean confirm, String reason, boolean wait); void crash(String message); int getLastShutdownReason(); int getLastSleepReason(); void setStayOnSetting(int val); void boostScreenBrightness(long time); Loading
core/java/android/os/PowerManager.java +33 −0 Original line number Diff line number Diff line Loading @@ -396,6 +396,23 @@ public final class PowerManager { */ public static final int GO_TO_SLEEP_REASON_ACCESSIBILITY = 7; /** * @hide */ public static String sleepReasonToString(int sleepReason) { switch (sleepReason) { case GO_TO_SLEEP_REASON_APPLICATION: return "application"; case GO_TO_SLEEP_REASON_DEVICE_ADMIN: return "device_admin"; case GO_TO_SLEEP_REASON_TIMEOUT: return "timeout"; case GO_TO_SLEEP_REASON_LID_SWITCH: return "lid_switch"; case GO_TO_SLEEP_REASON_POWER_BUTTON: return "power_button"; case GO_TO_SLEEP_REASON_HDMI: return "hdmi"; case GO_TO_SLEEP_REASON_SLEEP_BUTTON: return "sleep_button"; case GO_TO_SLEEP_REASON_ACCESSIBILITY: return "accessibility"; default: return Integer.toString(sleepReason); } } /** * Go to sleep flag: Skip dozing state and directly go to full sleep. * @hide Loading Loading @@ -1309,6 +1326,22 @@ public final class PowerManager { } } /** * Returns the reason the device last went to sleep (i.e. the last value of * the second argument of {@link #goToSleep(long, int, int) goToSleep}). * * @return One of the {@code GO_TO_SLEEP_REASON_*} constants. * * @hide */ public int getLastSleepReason() { try { return mService.getLastSleepReason(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * Intent that is broadcast when the state of {@link #isPowerSaveMode()} changes. * This broadcast is only sent to registered receivers. Loading
services/core/java/com/android/server/power/PowerManagerService.java +24 −0 Original line number Diff line number Diff line Loading @@ -288,6 +288,9 @@ public final class PowerManagerService extends SystemService private long mLastWakeTime; private long mLastSleepTime; // Last reason the device went to sleep. private int mLastSleepReason; // Timestamp of the last call to user activity. private long mLastUserActivityTime; private long mLastUserActivityTimeNoChangeLights; Loading Loading @@ -1433,6 +1436,7 @@ public final class PowerManagerService extends SystemService } mLastSleepTime = eventTime; mLastSleepReason = reason; mSandmanSummoned = true; setWakefulnessLocked(WAKEFULNESS_DOZING, reason); Loading Loading @@ -3266,6 +3270,7 @@ public final class PowerManagerService extends SystemService pw.println(" mDeviceIdleTempWhitelist=" + Arrays.toString(mDeviceIdleTempWhitelist)); pw.println(" mLastWakeTime=" + TimeUtils.formatUptime(mLastWakeTime)); pw.println(" mLastSleepTime=" + TimeUtils.formatUptime(mLastSleepTime)); pw.println(" mLastSleepReason=" + PowerManager.sleepReasonToString(mLastSleepReason)); pw.println(" mLastUserActivityTime=" + TimeUtils.formatUptime(mLastUserActivityTime)); pw.println(" mLastUserActivityTimeNoChangeLights=" + TimeUtils.formatUptime(mLastUserActivityTimeNoChangeLights)); Loading Loading @@ -4404,6 +4409,19 @@ public final class PowerManagerService extends SystemService } } @Override // Binder call public int getLastSleepReason() { mContext.enforceCallingOrSelfPermission( android.Manifest.permission.DEVICE_POWER, null); final long ident = Binder.clearCallingIdentity(); try { return getLastSleepReasonInternal(); } finally { Binder.restoreCallingIdentity(ident); } } /** * Reboots the device. * Loading Loading @@ -4619,6 +4637,12 @@ public final class PowerManagerService extends SystemService } } private int getLastSleepReasonInternal() { synchronized (mLock) { return mLastSleepReason; } } private final class LocalService extends PowerManagerInternal { @Override public void setScreenBrightnessOverrideFromWindowManager(int screenBrightness) { Loading