packages/apps/Settings/res/values/arrays.xml
<!-- Display settings. The delay in inactivity before the screen is turned off. These are shown in a list dialog. -->
<string-array name="screen_timeout_entries">
<item>Never</item> <!-- 加上这一行 -->
<item>15 seconds</item>
<item>30 seconds</item>
<item>1 minute</item>
<item>2 minutes</item>
<item>5 minutes</item>
<item>10 minutes</item>
<item>30 minutes</item>
</string-array>
<!-- Do not translate. -->
<string-array name="screen_timeout_values" translatable="false">
<!-- Do not translate. -->
<item>-1</item> <!-- 加上这一行 -->
<!-- Do not translate. -->
<item>15000</item>
<!-- Do not translate. -->
<item>30000</item>
<!-- Do not translate. -->
<item>60000</item>
<!-- Do not translate. -->
<item>120000</item>
<!-- Do not translate. -->
<item>300000</item>
<!-- Do not translate. -->
<item>600000</item>
<!-- Do not translate. -->
<item>1800000</item>
</string-array>
frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java源码
// True if the battery level is currently considered low.
private boolean mBatteryLevelLow;
+ // True if never sleep.
+ private boolean mNeverSleep = true;
+
private final ArrayList<PowerManagerInternal.LowPowerModeListener> mLowPowerModeListeners
= new ArrayList<PowerManagerInternal.LowPowerModeListener>();
@@ -1535,6 +1538,13 @@ public final class PowerManagerService extends SystemService
private int getScreenOffTimeoutLocked(int sleepTimeout) {
int timeout = mScreenOffTimeoutSetting;
+
+ if (timeout < 0) {
+ mNeverSleep = true;
+ } else {
+ mNeverSleep = false;
+ }
+
if (isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) {
timeout = Math.min(timeout, mMaximumScreenOffTimeoutFromDeviceAdmin);
}
@@ -1612,6 +1622,7 @@ public final class PowerManagerService extends SystemService
private boolean isBeingKeptAwakeLocked() {
return mStayOn
|| mProximityPositive
+ || mNeverSleep
|| (mWakeLockSummary & WAKE_LOCK_STAY_AWAKE) != 0
|| (mUserActivitySummary & (USER_ACTIVITY_SCREEN_BRIGHT
| USER_ACTIVITY_SCREEN_DIM)) != 0;
@@ -1889,6 +1900,7 @@ public final class PowerManagerService extends SystemService
if ((mWakeLockSummary & WAKE_LOCK_SCREEN_BRIGHT) != 0
|| (mUserActivitySummary & USER_ACTIVITY_SCREEN_BRIGHT) != 0
+ || mNeverSleep
|| !mBootCompleted) {
return DisplayPowerRequest.POLICY_BRIGHT;
}
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
-->
<resources>
<bool name="def_dim_screen">true</bool>
- <integer name="def_screen_off_timeout">2147483647</integer>
+ <integer name="def_screen_off_timeout">-1</integer>
<integer name="def_sleep_timeout">-1</integer>
<bool name="def_airplane_mode_on">false</bool>
<!-- Comma-separated list of bluetooth, wifi, and cell. -->