Android P中设置电池中省电模式默认开启

本文详细介绍了如何在安卓系统的SettingsProvider与BatterySaverStateMachine类中,修改低电量模式的默认设置,通过在DatabaseHelper.java文件中添加或修改特定代码,实现开机时自动启用低电量模式。

如图:

修改如下:

vendor/mediatek/proprietary/packages/apps/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java中t添加值:

 private void loadGlobalSettings(SQLiteDatabase db) {
        SQLiteStatement stmt = null;
        try {
            stmt = db.compileStatement("INSERT OR IGNORE INTO global(name,value)"
                    + " VALUES(?,?);");
            //add begin
            loadSetting(stmt, Settings.Global.LOW_POWER_MODE,1);
            loadSetting(stmt, Settings.Global.LOW_POWER_MODE_STICKY,1);
            //loadSetting(stmt, Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL,15);
            //end			

            // --- Previously in 'system'
            loadBooleanSetting(stmt, Settings.Global.AIRPLANE_MODE_ON,
                    R.bool.def_airplane_mode_on);
            ...........
            ...........
}

或者修改如下类:

frameworks/base/services/core/java/com/android/server/power/batterysaver/BatterySaverStateMachine.java

 /**
     * {@link com.android.server.power.PowerManagerService} calls it when the system is booted.
     */
    public void onBootCompleted() {
        if (DEBUG) {
            Slog.d(TAG, "onBootCompleted");
        }
        // Just booted. We don't want LOW_POWER_MODE to be persisted, so just always clear it.
        putGlobalSetting(Global.LOW_POWER_MODE, 1);//直接置为1
.....
.....
}

 

<think>我们正在讨论安卓系统睡眠时默认打开黑屏的问题。用户想知道原因和解决办法。 首先,我们需要理解“睡眠默认打开黑屏”的含义。在安卓系统中,当设备进入睡眠状态(即休眠)时,屏幕会关闭以节省电量。这是正常行为。但用户可能遇到的问题是:在设备唤醒时屏幕没有正常亮起,或者在不希望黑屏的时候黑屏了(比如在使用过程中),或者用户希望改变黑屏的默认行为。 可能的原因和相应解决办法如下: 1. **屏幕超时设置过短**:系统设置中,屏幕自动关闭的时间(睡眠时间)设置得太短,导致设备很快进入睡眠状态而黑屏。 - **解决办法**:进入“设置”->“显示”->“屏幕超时”(或类似选项),将时间设置为更长一些,比如30秒或1分钟。 2. **电源按钮设置**:有时候用户误按了电源按钮,导致屏幕关闭(黑屏)。 - **解决办法**:检查电源按钮是否过于灵敏,或者是否有应用导致电源按钮被触发。通常这是正常现象,但若频繁误触,可以考虑检查硬件问题。 3. **第三方应用干扰**:某些应用(如省电应用、锁屏应用)可能会强制屏幕关闭或干扰系统休眠策略。 - **解决办法**:进入安全模式(在开机时按住特定的组合键,不同设备不同)检查是否仍有问题。如果在安全模式下没有问题,则可能是第三方应用导致。尝试卸载最近安装的应用或进行应用排查。 4. **系统错误或BUG**:系统本身的缺陷可能导致屏幕异常关闭或无法唤醒。 - **解决办法**:尝试重启设备;检查系统更新(设置->系统->系统更新);如果问题严重,可以考虑备份数据后恢复出厂设置。 5. **硬件问题**:屏幕、电源按钮或其他相关硬件出现故障。 - **解决办法**:如果上述软件方法无效,可能需要联系售后进行硬件检测。 6. **开发者选项设置**:如果用户启用了开发者选项,其中某些设置(如“保持唤醒状态”被关闭)可能影响屏幕行为。 - **解决办法**:进入“设置”->“系统”->“开发者选项”,检查相关设置,尤其是“保持唤醒状态”(充电时不休眠)是否被误关闭。如果不需要开发设置,可以关闭开发者选项。 7. **环境光传感器**:部分设备有环境光传感器,当环境光线很暗时,屏幕可能会变暗甚至关闭。 - **解决办法**:检查设置中是否开启了自动亮度,尝试关闭自动亮度(设置->显示->亮度),或者确保传感器没有被遮挡。 8. **省电模式电池优化**:当设备电量低时,系统可能会进入省电模式,从而缩短屏幕超时时间。 - **解决办法**:关闭省电模式设置->电池),并检查电池优化设置中是否有应用被过度优化。 注意:不同安卓设备和系统版本设置路径可能略有不同。 如果用户的问题是指在唤醒设备时屏幕不亮(黑屏),则可能是以下原因: - 系统唤醒延迟或卡顿:尝试强制重启设备。 - 系统崩溃:进入恢复模式尝试清除缓存分区(具体操作因设备而异)。 - 屏幕硬件问题:如上述硬件问题。 由于用户提到的是“默认打开黑屏”,我猜测用户可能希望关闭这个默认行为。但需要说明的是,睡眠时黑屏是安卓系统为节省电量而设计的正常行为,无法完全关闭(除非修改系统底层)。用户只能调整睡眠时间,或者使用一些应用(如“保持屏幕常亮”类应用)来防止黑屏(但会显著增加耗电)。 因此,根据用户的需求,如果用户希望设备在特定情况下保持屏幕常亮,可以: - 在设置中延长屏幕超时时间。 - 在应用中使用保持唤醒的权限(例如视频播放应用通常会在播放时保持屏幕常亮)。 - 使用第三方应用(如“Keep Screen On”)来设置特定场景下保持屏幕开启。 如果用户的问题是在使用过程中出现异常黑屏,则按照上述原因排查。 最后,由于安卓设备的多样性,建议用户根据自己设备的具体品牌和型号查找更针对性的解决方案。 </think>### 安卓系统睡眠默认打开黑屏的原因及解决办法 #### 一、原因分析 1. **节能机制** 安卓系统通过睡眠时关闭屏幕(黑屏)来节省电力消耗,这是移动设备的核心省电策略[^1]。系统会在$t$秒无操作后自动触发该机制,其中$t$由屏幕超时设定决定。 2. **硬件保护机制** 屏幕是耗电最高的组件(约占整机功耗$30\%-60\%$),长时间亮屏会导致: - OLED屏幕烧屏风险 - 电池温度升高(超过$45^\circ C$可能损伤硬件) 3. **系统级策略** 安卓的`PowerManagerService`服务管理休眠流程: ```java // 伪代码逻辑 if (userInactivityTime > timeoutThreshold) { displayManager.setDisplayState(OFF); // 触发黑屏 cpuEnterLowPowerState(); // CPU降频 } ``` #### 二、解决方案 ##### (一) 调整系统设置 1. **延长屏幕超时时间** `设置 > 显示 > 屏幕超时` → 选择更长时间(如5分钟) $$ \text{新超时时间} T_{\text{new}} = k \times T_{\text{default}} \quad (k>1) $$ 2. **关闭智能休眠** `设置 > 辅助功能 > 动作和手势` → 关闭"拿起唤醒"/"双击唤醒" ##### (二) 开发者模式调整 1. **保持唤醒状态(充电时)** `开发者选项 > 保持唤醒状态` → 开启(仅充电时有效) ```mermaid graph LR A[充电状态] --> B{保持唤醒开启?} B -->|是| C[屏幕常亮] B -->|否| D[正常休眠] ``` 2. **修改休眠策略** ```adb adb shell settings put system sleep_timeout 600000 // 设置10分钟超时(毫秒) ``` ##### (三) 应用层控制 1. **使用常亮应用** 安装`Caffeinate`等工具,通过唤醒锁阻止休眠: ```java PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); WakeLock wakeLock = pm.newWakeLock(PARTIAL_WAKE_LOCK, "MyApp:KeepScreenOn"); wakeLock.acquire(); ``` 2. **禁用省电优化** `设置 > 应用 > 特殊应用权限 > 电池优化` → 对指定应用选择"不优化" #### 三、特殊情况处理 | 问题现象 | 解决方法 | |------------------------|----------------------------| | 唤醒后屏幕无响应 | 强制重启(电源键+音量下15秒)| | 非休眠时段异常黑屏 | 检查距离传感器是否被遮挡 | | 系统升级后频繁黑屏 | 清除`cache分区`恢复默认设置 | > **注意事项**:长期禁止休眠会导致: > 1. 电池循环寿命下降:$ \Delta Q = \alpha \cdot t^2 $($Q$为容量衰减) > 2. 屏幕老化加速 > 3. 设备温度升高$ \Delta T \propto P_{\text{display}} $[^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值