设置Android系统永不休眠灭屏(Android 8.1源码修改)
1、修改:frameworks/base/api/current.txt 文件
diff --git a/ap/frameworks/base/api/current.txt b/ap/frameworks/base/api/current.txt
old mode 100644
new mode 100755
index 25e998c..d4eb2a6
--- a/ap/frameworks/base/api/current.txt
+++ b/ap/frameworks/base/api/current.txt
@@ -34940,6 +34940,7 @@ package android.provider {
field public static final java.lang.String RADIO_CELL = "cell";
field public static final java.lang.String RADIO_NFC = "nfc";
field public static final java.lang.String RADIO_WIFI = "wifi";
+ field public static final java.lang.String SCREEN_STAY_ON_ANYWAY = "screen_stay_on_anyway";
field public static final deprecated java.lang.String SHOW_PROCESSES = "show_processes";
field public static final java.lang.String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
field public static final java.lang.String TRANSITION_ANIMATION_SCALE = "transition_animation_scale";
2、修改:frameworks/base/api/system-current.txt 文件
diff --git a/ap/frameworks/base/api/system-current.txt b/ap/frameworks/base/api/system-current.txt
old mode 100644
new mode 100755
index 2bc8a92..91b86c7
--- a/ap/frameworks/base/api/system-current.txt
+++ b/ap/frameworks/base/api/system-current.txt
@@ -37994,6 +37994,7 @@ package android.provider {
field public static final java.lang.String RADIO_CELL = "cell";
field public static final java.lang.String RADIO_NFC = "nfc";
field public static final java.lang.String RADIO_WIFI = "wifi";
+ field public static final java.lang.String SCREEN_STAY_ON_ANYWAY = "screen_stay_on_anyway";
field public static final deprecated java.lang.String SHOW_PROCESSES = "show_processes";
field public static final java.lang.String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
field public static final java.lang.String THEATER_MODE_ON = "theater_mode_on";
3、修改:frameworks/base/api/test-current.txt文件
diff --git a/ap/frameworks/base/api/test-current.txt b/ap/frameworks/base/api/test-current.txt
old mode 100644
new mode 100755
index bbaf021..34eb6fe
--- a/ap/frameworks/base/api/test-current.txt
+++ b/ap/frameworks/base/api/test-current.txt
@@ -35130,6 +35130,7 @@ package android.provider {
field public static final java.lang.String RADIO_CELL = "cell";
field public static final java.lang.String RADIO_NFC = "nfc";
field public static final java.lang.String RADIO_WIFI = "wifi";
+ field public static final java.lang.String SCREEN_STAY_ON_ANYWAY = "screen_stay_on_anyway";
field public static final deprecated java.lang.String SHOW_PROCESSES = "show_processes";
field public static final java.lang.String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
field public static final java.lang.String TRANSITION_ANIMATION_SCALE = "transition_animation_scale";
4、修改:frameworks/base/core/java/android/provider/Settings.java 文件
diff --git a/ap/frameworks/base/core/java/android/provider/Settings.java b/ap/frameworks/base/core/java/android/provider/Settings.java
old mode 100644
new mode 100755
index 2d54fde..798a8c8
--- a/ap/frameworks/base/core/java/android/provider/Settings.java
+++ b/ap/frameworks/base/core/java/android/provider/Settings.java
@@ -7720,7 +7720,9 @@ public final class Settings {
* These values can be OR-ed together.
*/
public static final String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
-
+ /* zhaojingrong add for disable screen off */
+ public static final String SCREEN_STAY_ON_ANYWAY = "screen_stay_on_anyway";
+
/**
* When the user has enable the option to have a "bug report" command
* in the power menu.
5、修改:frameworks/base/packages/SettingsProvider/res/values/defaults.xml 文件
old mode 100644
new mode 100755
index e6a14ec..5638185
--- a/ap/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/ap/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -19,6 +19,7 @@
<resources>
<bool name="def_dim_screen">true</bool>
<integer name="def_screen_off_timeout">60000</integer>
+ <integer name="def_screen_on_anyway">1</integer> <!--zhaojingrong add -->
<integer name="def_sleep_timeout">-1</integer>
<bool name="def_airplane_mode_on">false</bool>
<bool name="def_theater_mode_on">false</bool>
其中def_screen_on_anyway为1时系统永远不灭屏,为0时,系统按时熄屏。
6、修改:frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java文件
diff --git a/ap/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/ap/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
old mode 100644
new mode 100755
index 9274f39..1220b77
--- a/ap/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/ap/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2516,6 +2516,9 @@ class DatabaseHelper extends SQLiteOpenHelper {
("1".equals(SystemProperties.get("ro.kernel.qemu")) ||
mContext.getResources().getBoolean(R.bool.def_stay_on_while_plugged_in))
? 1 : 0);
+ /* zhaojingrong add for disable screen off start */
+ loadIntegerSetting(stmt, Settings.Global.SCREEN_STAY_ON_ANYWAY, R.integer.def_screen_on_anyway);
+ /* zhaojingrong add for disable screen off end */
loadIntegerSetting(stmt, Settings.Global.WIFI_SLEEP_POLICY,
R.integer.def_wifi_sleep_policy);
7、修改frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java文件
diff --git a/ap/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java b/ap/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
index f320aa2..c545011 100755
--- a/ap/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/ap/frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
@@ -442,7 +442,9 @@ public final class PowerManagerService extends SystemService
// The stay on while plugged in setting.
// A bitfield of battery conditions under which to make the screen stay on.
private int mStayOnWhilePluggedInSetting;
-
+ /* zhaojingrong add for disable screen off */
+ private int mScreenStayOnAnyway;
+
// True if the device should stay on.
private boolean mStayOn;
@@ -785,6 +787,10 @@ public final class PowerManagerService extends SystemService
resolver.registerContentObserver(Settings.Global.getUriFor(
Settings.Global.STAY_ON_WHILE_PLUGGED_IN),
false, mSettingsObserver, UserHandle.USER_ALL);
+ /* zhaojingrong add for disable screen off */
+ resolver.registerContentObserver(Settings.Global.getUriFor(
+ Settings.Global.SCREEN_STAY_ON_ANYWAY),
+ false, mSettingsObserver, UserHandle.USER_ALL);
resolver.registerContentObserver(Settings.System.getUriFor(
Settings.System.SCREEN_BRIGHTNESS),
false, mSettingsObserver, UserHandle.USER_ALL);
@@ -908,6 +914,10 @@ public final class PowerManagerService extends SystemService
UserHandle.USER_CURRENT);
mStayOnWhilePluggedInSetting = Settings.Global.getInt(resolver,
Settings.Global.STAY_ON_WHILE_PLUGGED_IN, BatteryManager.BATTERY_PLUGGED_AC);
+ /* zhaojingrong add for disable screen off start*/
+ mScreenStayOnAnyway = Settings.Global.getInt(resolver,
+ Settings.Global.SCREEN_STAY_ON_ANYWAY, 0);
+ /* zhaojingrong add for disable screen off end*/
mTheaterModeEnabled = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.THEATER_MODE_ON, 0) == 1;
mAlwaysOnEnabled = mAmbientDisplayConfiguration.alwaysOnEnabled(UserHandle.USER_CURRENT);
@@ -1653,6 +1663,12 @@ public final class PowerManagerService extends SystemService
// Phase 0: Basic state updates.
updateIsPoweredLocked(mDirty);
updateStayOnLocked(mDirty);
+ /* zhaojingrong add for disable screen off start */
+ if(mScreenStayOnAnyway != 0){
+ mStayOn = true;
+ mDirty |= DIRTY_STAY_ON;
+ }
+ /* zhaojingrong add for disable screen off end */
updateScreenBrightnessBoostLocked(mDirty);
// Phase 1: Update wakefulness.
以上代码在高通android8.1系统上验证是OK的。