android低电量提示,Android4.4开发之电池低电量告警提示原理与实现方法分析
本文实例讲述了Android4.4电池低电量告警提示原理与实现方法。分享给大家供大家参考,具体如下:
之前版本的电池电量低是通过发送 intent ACTION_BATTERY_LOW来实现的,而在android4.4中,通过发送intent ACTION_BATTERY_CHANGED,也就是电池电量只要变化就检查是否需要低电量告警,并且实现挪到了PowerUI中。
路径:
frameworks/base/packages/SystemUI/src/com/android/systemui/power/PowerUI.java
public void start() {
......
//注册intent, 主要关注的是ACTION_BATTERY_CHANGED消息。
// Register for Intent broadcasts for...
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
mContext.registerReceiver(mIntentReceiver, filter, null, mHandler);
}
当电池电量发生变化的时候,BatteryService就会发送 ACTION_BATTERY_CHANGED的 intent.
接着如下函数就会被调用:
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
......
mBatteryStatus = intent.getIntExtra(BatteryManager.EXTRA_STATUS,
BatteryManager.BATTERY_STATUS_UNKNOWN);
......
if (!plugged
&& (bucket < oldBucket || oldPlugged)
&& mBatteryStatus != BatteryManager.BATTERY_STATUS_UNKNOWN
&& bucket < 0) {
showLowBatteryWarning();
......
}
}
};
如果不想要显示低电量对话框, 只要不调用showLowBatteryWarning()即可。
我遇到的问题在于插上充电座之后开机仍然显示低电量告警,提示要插入充电器,出现这个问题的原因在于: 电池是另外一块板子供的,所以没有插拔信息,并且battery status默认情况下也是BATTERY_STATUS_UNKNOWN。
因此只要将status改成BATTERY_STATUS_CHARGING就能修复此问题了~
希望本文所述对大家Android程序设计有所帮助。
android低电量提示,Android4.4开发之电池低电量告警提示原理与实现方法分析相关推荐
- 普中HC6800V2.2开发板思考记录-继电器概念、原理、使用方法
一,继电器 当输入量(如电压.电流.温度等)达到规定值时,使被控制的输出电路导通或断开的电器.可分为电气量(如电流.电压.频率.功率等)继电器及非电气量(如温度.压力.速度等)继电器两大类.具有动作快 ...
- 台式计算机提示电池低,电脑电量低时候不提示直接自动关机怎么解决
一般电脑电量过低时候会提示我们及时充电,但是有时出现不提示,直接自动关机怎么回事呢.下面小编就跟大家分享下Win7笔记本低电量就自动关机的解决方法. 解决方法如下: 1.首先把鼠标移动到win7屏幕右 ...
- Android 5.0 API 的变化——开发人员注意
Android 5.0 API变化 译自 http://developer.android.com/intl/zh-cn/about/versions/android-5.0.html -- By N ...
- Android 功耗优化(1)----使用Battery Historian生成电量消耗报告
性能优化之电量优化-使用Battery Historian生成电量消耗报告 1 数据准备 1.1 先断开adb服务,然后开启adb服务 (a)adb kill-server 1 这一步很重要,因为当我 ...
- Android Studio 4.0.+NDK项目开发详细教学
JNI开发系列目录 JNI开发必学C++基础 JNI开发必学C++使用实践 Android Studio 4.0.+NDK项目开发详细教学 Android NDK与JNI的区别有何不同? Androi ...
- Windows在结构Eclipse+Android4.0开发环境
官方搭建步骤: http://developer.android.com/index.html 搭建好开发环境之前须要下载以下几个文件包: 一.安装Java执行环境JRE(没这个Eclipse执行不起 ...
- Windows下搭建Eclipse+Android4.0开发环境
官方搭建步骤: http://developer.android.com/index.html 搭建好开发环境之前须要下载以下几个文件包: 一.安装Java执行环境JRE(没这个Eclipse执行不起 ...
- android 使用c 代码实现,JNI开发实现helloworld,调用自己的C代码实现(1)
JNI开发,实现自己的C代码,helloworld 在这里实现一个简单的demo,完成加载自己的C代码 使用Android studio,一步一步教你实现在屏幕上显示出helloworld 如下图显示 ...
- android app 移植到pc,微软开发新应用把Android app“移植”到Win Phone
依据微软2010年公布在Tweet上的一份专利申请书,微软正在开发一种新服务能够在不同的手机操作系统中"移植"应用和应用数据.这是说Android,iOS应用以后可以跨平台&quo ...
最新文章
- 修改adb shell在pc端显示的名称
- 关于MATLAB FFT频谱泄露和加窗
- PE文件详解(教程1-7)
- 看不到这些痛点,就无法入局智能制造
- jMenu 不添加item 直接自己添加监听actionPerformed不行mousePressed可以
- SugarCRM 去掉 模块标题左边的 问号 和 帮助
- Oracle命令--为数据文件缩容
- 一起学习C语言:C语言基本语法(二)
- 第七节:SpringBoot高级属性配置二
- python学习图解_大牛整理!Python学习方法和学习路线,看完茅塞顿开!
- linux基本命令示例_Linux ps命令– 20个真实示例
- 浅析IRF虚拟化技术增强企业网络架构的弹性
- 关于C和C++中的基本数据类型int、long、long long、float、double、char、string的大小及表示范围
- UltraVNC 使用方法详细说明
- ExoPlayer播放器剖析(一)进入ExoPlayer的世界
- 【如何高效管理Linkedin账号】
- 深度强化学习CS285-Lec18 Meta-Learning in RL
- 旅行也能玩儿转区块链?看星牛APP的!
- 设置Ajax为同步请求
- PlayStation 4,PlayStation 4 Slim和PlayStation 4 Pro之间有什么区别?
热门文章
- android 自定义baseadapter listview,android之ListView和BaseAdapter的组合使用
- windows服务器网站日志,windows服务器网站日志文件
- 矢量图标库如何引入html,Iconfont矢量图标库在网站中的使用方法
- mysql 注入 file load_Mysql注入中into outfile和load_file()总结
- jwt私钥和公钥怎么获取_jwt 用rsa公钥私钥进行验证(python发送,java接受)
- Visual Studio的Web Performance Test提取规则详解(1)
- 微信支付遇到的坑--签名错误
- 云通讯短信验证码实例
- conflicting types for ‘方法名’ 的错误
- Ext 3.0 +ASP.NET2.0 可视化开发介绍