您的位置:首页 > 其它

安卓7.0显示设置界面休眠菜单添加“永不灭屏”选项

2018-02-01 17:49 579 查看
1. 打开文件packages/apps/Settings/res/values/arrays.xml,在该文件中添加以下内容

<string-array name="screen_timeout_entries">
        <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>
        <item>Never</item> // added

    </string-array>

<string-array name="screen_timeout_values" translatable="false">

        <!-- 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>

        <item>0</item>// added
    </string-array>

2.打开文件packages/apps/Settings/res/values-zh-rCN/arrays.xml,添加如下内容

<string-array name="screen_timeout_entries">
    <item msgid="3342301044271143016">"15\u79d2"</item>
    <item msgid="8881760709354815449">"30\u79d2"</item>
    <item msgid="7589406073232279088">"1\u5206\u949f"</item>
    <item msgid="7001195990902244174">"2\u5206\u949f"</item>
    <item msgid="7489864775127957179">"5\u5206\u949f"</item>
    <item msgid="2314124409517439288">"10\u5206\u949f"</item>
    <item msgid="6864027152847611413">"30\u5206\u949f"</item>
    <item>"永不灭屏"</item> // added
  </string-array>

3.打开文件packages/apps/Settings/src/com/android/settings/DisplaySettings.java,添加如下内容

private void updateTimeoutPreferenceDescription(long currentTimeout) {

ListPreference preference = mScreenTimeoutPreference;
String summary

//add never srceen off begin
final CharSequence[] entries = preference.getEntries();
final CharSequence[] values = preference.getEntryValues();
//add never srceen off end

if (currentTimeout < 0) {
// Unsupported value

// add never srceen off begin
//summary = "";
if (entries != null || entries.length != 0){
summary = (entries[entries.length-1]).toString();
}else{
summary = "";
}
// add never srceen off end
} else {
//final CharSequence[] entries = preference.getEntries();
//final CharSequence[] values = preference.getEntryValues();

if (entries == null || entries.length == 0) {
summary = "";
} else {
int best = 0;
for (int i = 0; i < values.length; i++) {
long timeout = Long.parseLong(values[i].toString());
if (currentTimeout == timeout) {
best = i;
}
}

///M: to prevent index out of bounds @{
if (entries.length != 0) {
summary = preference.getContext().getString(
R.string.screen_timeout_summary, entries[best]);
} else {
summary = "";
}
///M: @}
}
}
preference.setSummary(summary);
}


4.打开文件frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java,添加如下内容

private int getScreenOffTimeoutLocked(int sleepTimeout) {
int nosleep = 0; // add never srceen off
int timeout = mScreenOffTimeoutSetting;

if (isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) {
timeout = Math.min(timeout, mMaximumScreenOffTimeoutFromDeviceAdmin);
}

if (mUserActivityTimeoutOverrideFromWindowManager >= 0) {
timeout = (int)Math.min(timeout, mUserActivityTimeoutOverrideFromWindowManager);
}

if (sleepTimeout >= 0) {
timeout = Math.min(timeout, sleepTimeout);
}

if (mUserActivityTimeoutMin) {
timeout = (int)Math.min(timeout, mUserActivityTimeoutOverrideFromCMD);
}

//add never srceen off begin
nosleep = mScreenOffTimeoutSetting;
if(nosleep  == 0){
nosleep = mMaximumScreenOffTimeoutFromDeviceAdmin ;
return Math.max(nosleep, mMaximumScreenOffTimeoutFromDeviceAdmin);
}
//add never srceen off end
return Math.max(timeout, mMinimumScreenOffTimeoutConfig);
}


按照以上方法添加完成后编译代码,刷机即可生效
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐