状态栏默认显示电量百分比

在Android P 的BatteryMeterView中有集成显示电量百分比相关代码,所以我们只需要将其显示控制条件默认打开就行。

在Settings的Battery的子页面中存在一个Battery percentage Switch选项,该选项就是用来控制电量百分比是否显示在状态栏的,不过默认是关闭的~

通过Battery percentage Switch选项,可以定位到android\packages\apps\Settings\res\xml\power_usage_summary.xml 文件,有如下代码:

android:key="battery_percentage"

android:title="@string/battery_percentage"

android:summary="@string/battery_percentage_description" />

根据布局中的key值,可以查询到该SwitchPreference的控制器类android\packages\apps\Settings\src\com\android\settings\display\BatteryPercentagePreferenceController.java,如下:

public class BatteryPercentagePreferenceController extends AbstractPreferenceController implements

PreferenceControllerMixin, Preference.OnPreferenceChangeListener {

private static final String KEY_BATTERY_PERCENTAGE = "battery_percentage";

public BatteryPercentagePreferenceController(Context context) {

super(context);

}

/**

*isAvailable返回值主要控制在Settings的Battery页面中的

*Battery percentage Switch选项是否显示出来

*

*返回false,Battery percentage选项将会被隐藏掉

*

*config_battery_percentage_setting_available默认值为true,

*在android\frameworks\base\core\res\res\values\config.xml中定义。

*/

@Override

public boolean isAvailable() {

return mContext.getResources()

.getBoolean(R.bool.config_battery_percentage_setting_available);

}

@Override

public String getPreferenceKey() {

return KEY_BATTERY_PERCENTAGE;

}

/**

*根据SHOW_BATTERY_PERCENT值,更改Switch显示状态

*在没有取到SHOW_BATTERY_PERCENT值时候,以0为默认值

* 1:显示,0:不显示

*/

@Override

public void updateState(Preference preference) {

int setting = Settings.System.getInt(mContext.getContentResolver(),

SHOW_BATTERY_PERCENT, 0);

((SwitchPreference) preference).setChecked(setting == 1);

}

/**

*根据Switch状态改变,从而更改SHOW_BATTERY_PERCENT这个系统值

*/

@Override

public boolean onPreferenceChange(Preference preference, Object newValue) {

boolean showPercentage = (Boolean) newValue;

Settings.System.putInt(mContext.getContentResolver(), SHOW_BATTERY_PERCENT,

showPercentage ? 1 : 0);

return true;

}

}

所以要想电量百分比默认显示,只需要找到SHOW_BATTERY_PERCENT默认值设置的地方,然后将其置为1,就默认显示电量百分比了。

一通查找,然后并没有发现SHOW_BATTERY_PERCENT赋初值的地方,所以需要自己手动添加一下:

在android/frameworks/base/packages/SettingsProvider/res/values/defaults.xml末尾添加一项:

1

然后该默认值写到系统数据库中去:

android/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

private void loadSystemSettings(SQLiteDatabase db) {

SQLiteStatement stmt = null;

try {

stmt = db.compileStatement("INSERT OR IGNORE INTO system(name,value)"

+ " VALUES(?,?);");

loadBooleanSetting(stmt, Settings.System.NOTIFICATION_LIGHT_PULSE,

R.bool.def_notification_pulse);

loadUISoundEffectsSettings(stmt);

loadIntegerSetting(stmt, Settings.System.POINTER_SPEED,

R.integer.def_pointer_speed);

//为SHOW_BATTERY_PERCENT写入默认值

loadIntegerSetting(stmt, Settings.System.SHOW_BATTERY_PERCENT, R.integer.def_show_battery_percent);

/*

* IMPORTANT: Do not add any more upgrade steps here as the global,

* secure, and system settings are no longer stored in a database

* but are kept in memory and persisted to XML.

*

* See: SettingsProvider.UpgradeController#onUpgradeLocked

*/

} finally {

if (stmt != null) stmt.close();

}

}

将SettingsProvider单编,然后push到设备中,将设备恢复出厂设置一下,状态栏显示电量百分比即可生效了!

标签:状态栏,SHOW,BATTERY,Settings,PERCENT,stmt,电量,Android,percentage

来源: https://blog.csdn.net/arrol1786936883/article/details/94555264

android电量百分比,Android P 状态栏显示电量百分比相关推荐

  1. android 10.0状态栏显示电量百分比

    1.概述 在10.0的系统产品开发中,对于系统默认的电池电量是不显示的,所以产品需求要求显示电池电量,方便知道当前电量,方便显示在电量不足的情况下可以及时充电,所以来实现这个功能 2.状态栏显示电量百 ...

  2. html电池百分比,iphonex的电池百分比怎么设置 这样显示电池百分比

    iPhonex发售已经有一段时间了,很多人也已经开始使用iPhonex了,很多人买iPhonex就是冲着它的高科技去买的,但是拿到手里却不怎么会用,比如很多人很多人就不知道iPhonex的电池百分比在 ...

  3. Android 9.0 代码实现对屏幕亮屏和灭屏的控制和显示电量百分比

    目录 1.概述 2.代码实现对屏幕亮屏和灭屏的控制和显示电量百分比的核心类

  4. android 电量控件,Android实现显示电量的控件代码

    下面介绍了Android实现显示电量的控件代码,具体代码如下: 1.目录结构,本人是使用安卓死丢丢. 2.运行界面,输入框中输入数值,点击刷新,会再电池中显示出相应的电量 3.绘制自定义电池控件,首先 ...

  5. Android做一个显示电量的小控件

    1.目录结构,本人是使用安卓死丢丢. 2.运行界面,输入框中输入数值,点击刷新,会再电池中显示出相应的电量 3.绘制自定义电池控件,首先,新建一个类BatteryState继承View private ...

  6. android 电量ui,Android UI显示电量跳变

    现象:android上层显示电量跳变,可是内核log显示UI_SOC2没有跳变现象:缘由:mtk默认设定尽量少的通知上层次数,以减小系统功耗,SOC有变化才更新一次,不然60秒后再更新一次,代码以下: ...

  7. Android黑屏死机--充电运行土豆视频【.4.4】》播放视频中黑屏死机》手动按电源键开机显示电量为6%

    [测试版本] T0405 [测试模块] [测试步骤]  充电运行土豆视频[.4.4]> [测试结果]播放视频中黑屏死机>手动按电源键开机显示电量为6%[开机后恢复] [预期结果]可正常播放 ...

  8. android 电量管理机制,电池电量分析---android篇

    原标题:电池电量分析---android篇 本文将从底层到上层介绍Android系统中电量显示这一块,电池检测采用的是ADC采样,不是使用市场上封装好的电量计芯片: 1.驱动层 Linux内核中提供p ...

  9. android6.0系统状态栏添加电量百分比

    1.系统状态栏添加电量百分比显示 我们要修改SystemUI这个应用,看过源码才知道,其实状态栏是分3个显示的, 锁屏的时候是一个,对应的类是KeyguardStatusBarView,它是一个Rel ...

最新文章

  1. JVM 有 Full GC,为什么还会出现 OutOfMemoryError呢?
  2. 做301定向跳转对网站优化有什么帮助?
  3. android 数字证书具体应用机制
  4. 你不可不知的30个项目管理术语(中英文对照)
  5. django 性能优化_优化Django管理员
  6. 动态添加控件[可重复同一控件]
  7. python color属性_Python turtle.color方法代码示例
  8. 百度2017春招笔试
  9. springboot新版本(2.1.0)、springcloud新版本(Greenwich.M1)实现链路追踪的一些坑
  10. 计算机视觉论文-2021-06-02
  11. VB 注册ocx控件的方法
  12. Maven的setting仓库配置
  13. 转帖:经济危机来临时的上海MM生活
  14. Kotlin GreenDao
  15. Excel找回打开密码过程
  16. 华为HCIE RS笔记-01以太网基础
  17. 启动计算机引导win10,图文详解win10系统电脑开机引导错误的方案
  18. json对象,java对象,json字符串,java字符串转换方式,没写的自己去看源码!
  19. 通过一个场景实例 了解前端处理大数据的无限可能
  20. 移动互联网应用程序(App) 安全认证实施规则

热门文章

  1. 数据库中 date 类型 实体类对应可以是 String 类型
  2. GeneXus中如何使用聊天机器人
  3. Linux - ImageMagick 6.9.10-5安装配置
  4. Ubuntu16.04编译Android 6.0系统源码过程简要记录总结
  5. 在微型计算机中硬件和软件的关系是_,计算机的硬件系统和软件系统的关系是什么?...
  6. Micro:bit篮球小游戏
  7. 「找一找」考你眼力的时候到了!
  8. Redis服务器集群搭建
  9. java 获取kafka lag,聊聊kafka consumer offset lag的监控
  10. 华为鸿蒙系统开发语言,华为鸿蒙系统采用什么语言进行开发的