1,设置系统永不休眠修改
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
设置默认值为0;
------ frameworks/base/packages/SettingsProvider/res/values/defaults.xml ------
old mode 100644
new mode 100755
index 761d8bcbed..48552ef862
@@ -18,7 +18,7 @@
-->
<resources>
<bool name="def_dim_screen">true</bool>
- <integer name="def_screen_off_timeout">60000</integer>
+ <integer name="def_screen_off_timeout">0</integer>
frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
判断mLockScreenTimeout是否为0,为0就不执行读秒息屏操作。
frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 23650e6b9e..be522d2425 100755
@@ -5121,7 +5121,12 @@ public class PhoneWindowManager implements WindowManagerPolicy {
if (enable) {
if (localLOGV) Log.v(TAG, "setting lockscreen timer");
mHandler.removeCallbacks(mScreenLockTimeout); // remove any pending requests
- mHandler.postDelayed(mScreenLockTimeout, mLockScreenTimeout);
+ //hhb add 20210823
+ //mHandler.postDelayed(mScreenLockTimeout, mLockScreenTimeout);
+ Log.d("huanghb","mLockScreenTimeout = "+mLockScreenTimeout);
+ if (mLockScreenTimeout != 0) {
+ mHandler.postDelayed(mScreenLockTimeout, mLockScreenTimeout);
+ }
} else {
if (localLOGV) Log.v(TAG, "clearing lockscreen timer");
mHandler.removeCallbacks(mScreenLockTimeout);
frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
同样是判断默认值是否为0,不为0就正常走息屏流程,mScreenOffTimeoutSetting为0就给系统赋予亮屏属性。
frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
old mode 100644
new mode 100755
index af7d91cf7b..5d3e5f18f9
@@ -117,6 +117,7 @@ import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import android.util.Log;
import java.util.Objects;
@@ -2338,24 +2339,29 @@ public final class PowerManagerService extends SystemService
mUserActivitySummary = USER_ACTIVITY_SCREEN_DREAM;
nextTimeout = -1;
}
+
+ if (mScreenOffTimeoutSetting != 0) {
+ if ((mUserActivitySummary & USER_ACTIVITY_SCREEN_BRIGHT) != 0
+ && (mWakeLockSummary & WAKE_LOCK_STAY_AWAKE) == 0) {
+ nextTimeout = mAttentionDetector.updateUserActivity(nextTimeout,
+ screenDimDuration);
+ }
- if ((mUserActivitySummary & USER_ACTIVITY_SCREEN_BRIGHT) != 0
- && (mWakeLockSummary & WAKE_LOCK_STAY_AWAKE) == 0) {
- nextTimeout = mAttentionDetector.updateUserActivity(nextTimeout,
- screenDimDuration);
- }
-
- if (nextProfileTimeout > 0) {
- nextTimeout = Math.min(nextTimeout, nextProfileTimeout);
- }
+ if (nextProfileTimeout > 0) {
+ nextTimeout = Math.min(nextTimeout, nextProfileTimeout);
+ }
- if (Integer.MAX_VALUE == screenOffTimeout) {
- mUserActivitySummary = USER_ACTIVITY_SCREEN_BRIGHT;
- //Slog.d(TAG, "set mUserActivitySummary USER_ACTIVITY_SCREEN_BRIGHT never sleep " + nextTimeout);
- }
+ if (Integer.MAX_VALUE == screenOffTimeout) {
+ mUserActivitySummary = USER_ACTIVITY_SCREEN_BRIGHT;
+ //Slog.d(TAG, "set mUserActivitySummary USER_ACTIVITY_SCREEN_BRIGHT never sleep " + nextTimeout);
+ }
- if (mUserActivitySummary != 0 && nextTimeout >= 0) {
- scheduleUserInactivityTimeout(nextTimeout);
+ if (mUserActivitySummary != 0 && nextTimeout >= 0) {
+ scheduleUserInactivityTimeout(nextTimeout);
+ }
+ } else {
+ mUserActivitySummary |= USER_ACTIVITY_SCREEN_BRIGHT;
}
} else {
mUserActivitySummary = 0;
2,在系统设置添加永不休眠选项
添加永不休眠选项,设置-显示-休眠
packages/apps/Settings/res/values-zh-rCN/arrays.xml
<item msgid="7489864775127957179">"5分钟"</item>
<item msgid="2314124409517439288">"10分钟"</item>
<item msgid="6864027152847611413">"30分钟"</item>
+ <item>"永不休眠"</item>
</string-array>
<string-array name="dream_timeout_entries">
<item msgid="3149294732238283185">"永不"</item>
packages/apps/Settings/res/values/arrays.xml
<item>10 minutes</item>
<item>30 minutes</item>
+ <item>never</item>
</string-array>
<!-- Do not translate. -->
<item>600000</item>
<!-- Do not translate. -->
<item>1800000</item>
+ <!-- Do not translate. -->
+ <item>0</item>
</string-array>
默认选中选项为第一个,即是永不休眠选项。
packages/apps/Settings/res/xml/display_settings.xml
android:title="@string/screen_timeout"
android:summary="@string/summary_placeholder"
android:entries="@array/screen_timeout_entries"
- android:entryValues="@array/screen_timeout_values" />
+ android:entryValues="@array/screen_timeout_values"
+ android:defaultValue="0"/>
本文介绍了如何在Android R系统中修改设置以实现永不休眠,并详细讲解了在系统设置中添加永不休眠选项的步骤,包括修改defaults.xml文件,调整PhoneWindowManager.java和PowerManagerService.java的逻辑,以及在设置-显示-休眠菜单中添加相关选项。



2272

被折叠的 条评论
为什么被折叠?



