Android 9.0 (P版本) MTK平台原生的省电模式自动开启

本文详细解析了手机省电模式自动开启功能的源码实现过程,从源码位置、字段查找,到核心类AutoBatterySaverPreferenceController的具体分析,揭示了默认触发值与省电模式开启之间的联系。

源码位置及分析:

1、首先根据字段“自动开启”查找源码:

vendor\mediatek\proprietary\packages\apps\MtkSettings_Eclipse\res_ext\values-zh-rCN\strings.xml,找到battery_saver_turn_on_automatically_title字段。

2、根据上述字段查找src以及设置下的源码:可以查到在以下源码中有该字段。

vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\fuelgauge\batterysaver\AutoBatterySeekBarPreferenceController.java 

        // Set the current value.
        final int level = Settings.Global.getInt(contentResolver,
                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL,
                AutoBatterySaverPreferenceController.DEFAULT_TRIGGER_LEVEL);
        if (level == 0) {
            preference.setVisible(false);
        } else {
            preference.setVisible(true);
            preference.setTitle(mContext.getString(R.string.battery_saver_seekbar_title,
                    Utils.formatPercentage(level)));
            SeekBarPreference seekBarPreference = (SeekBarPreference) preference;
            seekBarPreference.setProgress(level);
            seekBarPreference.setSeekBarContentDescription(
                    mContext.getString(R.string.battery_saver_turn_on_automatically_title));
        }

查看代码,可看出设置默认值得字段DEFAULT_TRIGGER_LEVEL,但是这个字段不是在该类中实现,而是调用了AutoBatterySaverPreferenceController中的设置,所以查找到 AutoBatterySaverPreferenceController.java

3、查找到AutoBatterySaverPreferenceController.java的文件位置,如下。

vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\fuelgauge\batterysaver\AutoBatterySaverPreferenceController.java

public class AutoBatterySaverPreferenceController extends TogglePreferenceController implements
        Preference.OnPreferenceChangeListener {

    /**
     * Default value for {@link Settings.Global#LOW_POWER_MODE_TRIGGER_LEVEL}.
     */
    static final int DEFAULT_TRIGGER_LEVEL = 15;

    /**
     * The default value to set to {@link Settings.Global#LOW_POWER_MODE_TRIGGER_LEVEL} when the
     * user enables battery saver.
     */
    private final int mDefaultTriggerLevelForOn;

在其代码中,可看出定义的int值,当为0的时候,自动开启功能默认关;当为15时,即剩余电量为15%时默认开启省电模式功能。具体功能分析待日后分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑滴小羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值