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

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);
    }

按照以上方法添加完成后编译代码,刷机即可生效








评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值