android电量百分比,Android P 状态栏显示电量百分比
状态栏默认显示电量百分比
在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 状态栏显示电量百分比相关推荐
- android 10.0状态栏显示电量百分比
1.概述 在10.0的系统产品开发中,对于系统默认的电池电量是不显示的,所以产品需求要求显示电池电量,方便知道当前电量,方便显示在电量不足的情况下可以及时充电,所以来实现这个功能 2.状态栏显示电量百 ...
- html电池百分比,iphonex的电池百分比怎么设置 这样显示电池百分比
iPhonex发售已经有一段时间了,很多人也已经开始使用iPhonex了,很多人买iPhonex就是冲着它的高科技去买的,但是拿到手里却不怎么会用,比如很多人很多人就不知道iPhonex的电池百分比在 ...
- Android 9.0 代码实现对屏幕亮屏和灭屏的控制和显示电量百分比
目录 1.概述 2.代码实现对屏幕亮屏和灭屏的控制和显示电量百分比的核心类
- android 电量控件,Android实现显示电量的控件代码
下面介绍了Android实现显示电量的控件代码,具体代码如下: 1.目录结构,本人是使用安卓死丢丢. 2.运行界面,输入框中输入数值,点击刷新,会再电池中显示出相应的电量 3.绘制自定义电池控件,首先 ...
- Android做一个显示电量的小控件
1.目录结构,本人是使用安卓死丢丢. 2.运行界面,输入框中输入数值,点击刷新,会再电池中显示出相应的电量 3.绘制自定义电池控件,首先,新建一个类BatteryState继承View private ...
- android 电量ui,Android UI显示电量跳变
现象:android上层显示电量跳变,可是内核log显示UI_SOC2没有跳变现象:缘由:mtk默认设定尽量少的通知上层次数,以减小系统功耗,SOC有变化才更新一次,不然60秒后再更新一次,代码以下: ...
- Android黑屏死机--充电运行土豆视频【.4.4】》播放视频中黑屏死机》手动按电源键开机显示电量为6%
[测试版本] T0405 [测试模块] [测试步骤] 充电运行土豆视频[.4.4]> [测试结果]播放视频中黑屏死机>手动按电源键开机显示电量为6%[开机后恢复] [预期结果]可正常播放 ...
- android 电量管理机制,电池电量分析---android篇
原标题:电池电量分析---android篇 本文将从底层到上层介绍Android系统中电量显示这一块,电池检测采用的是ADC采样,不是使用市场上封装好的电量计芯片: 1.驱动层 Linux内核中提供p ...
- android6.0系统状态栏添加电量百分比
1.系统状态栏添加电量百分比显示 我们要修改SystemUI这个应用,看过源码才知道,其实状态栏是分3个显示的, 锁屏的时候是一个,对应的类是KeyguardStatusBarView,它是一个Rel ...
最新文章
- JVM 有 Full GC,为什么还会出现 OutOfMemoryError呢?
- 做301定向跳转对网站优化有什么帮助?
- android 数字证书具体应用机制
- 你不可不知的30个项目管理术语(中英文对照)
- django 性能优化_优化Django管理员
- 动态添加控件[可重复同一控件]
- python color属性_Python turtle.color方法代码示例
- 百度2017春招笔试
- springboot新版本(2.1.0)、springcloud新版本(Greenwich.M1)实现链路追踪的一些坑
- 计算机视觉论文-2021-06-02
- VB 注册ocx控件的方法
- Maven的setting仓库配置
- 转帖:经济危机来临时的上海MM生活
- Kotlin GreenDao
- Excel找回打开密码过程
- 华为HCIE RS笔记-01以太网基础
- 启动计算机引导win10,图文详解win10系统电脑开机引导错误的方案
- json对象,java对象,json字符串,java字符串转换方式,没写的自己去看源码!
- 通过一个场景实例 了解前端处理大数据的无限可能
- 移动互联网应用程序(App) 安全认证实施规则
热门文章
- 数据库中 date 类型 实体类对应可以是 String 类型
- GeneXus中如何使用聊天机器人
- Linux - ImageMagick 6.9.10-5安装配置
- Ubuntu16.04编译Android 6.0系统源码过程简要记录总结
- 在微型计算机中硬件和软件的关系是_,计算机的硬件系统和软件系统的关系是什么?...
- Micro:bit篮球小游戏
- 「找一找」考你眼力的时候到了!
- Redis服务器集群搭建
- java 获取kafka lag,聊聊kafka consumer offset lag的监控
- 华为鸿蒙系统开发语言,华为鸿蒙系统采用什么语言进行开发的