[IMX6DL][Android4.4] 电池低电量告警提示【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/51789964
之前版本的电池电量低是通过发送 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就能修复此问题了~
[IMX6DL][Android4.4] 电池低电量告警提示【转】的更多相关文章
- android6.0系统Healthd分析及低电量自动关机流程
系统平台:android6.0概述Healthd是android4.4之后提出来的一种中介模型,该模型向下监听来自底层的电池事件,向上传递电池数据信息给Framework层的BatteryServic ...
- I.MX6 android 禁止低电量自动关机
/************************************************************************ * I.MX6 android 禁止低电量自动关机 ...
- android adb:电池与电量
手机每个硬件的耗电量是不一样的!比如屏幕就是耗电大户!其它一些元件则耗电量非常小! 使用android dumpsys工具可以获取电池以及电量消耗信息! dumpsys工具:battery.batte ...
- css实现简单的告警提示动画效果
需求:css实现简单的告警提示动画效果,当接收到实时信息的时候,页面弹出告警信息的动画效果 <!DOCTYPE html> <html lang="en"> ...
- Execute to Parse %: 29.76,数据库硬解析过高,监控告警提示数据库硬解析比例过低
客户反馈,Oracle重启库操作后,监控告警出现pin比例低于25% 根据Oracle体系结构的理解,重启库后,硬解析及buffer命中率肯定有一段时间低. 生成不同时段的AWR报告:不要生成rac ...
- Android4.4电池管理
一.概述 Android4.4的电池管理功能用于管理电池的充.放电功能. 整个电池管理的部分包含Linux电池驱动.Android电池服务.电池属性和參数.电池曲线优化四个部分. Linux电池驱动用 ...
- 使用BroadcastReceiver实现系统对手机电量进行提示
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Inten ...
- Android取得电池的电量
首先需要用到的是一个类继承BrocastReceiver 2 代码如下: public class Battery_Info extends BroadcastReceiver { @Override ...
- Swift - 告警提示框(UIAlertController)的用法
自iOS8起,苹果就建议告警框使用UIAlertController来代替UIAlertView.下面总结了一些常见的用法: 1,简单的应用(同时按钮响应Handler使用闭包函数) 1 2 3 ...
随机推荐
- python练习——小程序
1.打印0-10(while/for) count = 0 while count < 11: print(count) count += 1 for i in range(11): print ...
- SqlParameter[] parameters
SqlParameter[] parameters = { new SqlParameter("@rdTypeName", readertype.rdTypeName), new ...
- angularjs自己总结
1.模块 自定的directive和controller需要在同一个model下,或者另外的model depModules他了. ng-app要等于model的名字,所有的directive要在下面 ...
- 【dp】D. Caesar's Legions
https://www.bnuoj.com/v3/contest_show.php?cid=9146#problem/D [题意]给定n1个A,n2个B,排成一排,要求A最多能连续k1个紧挨着,B最多 ...
- poj 1163 数塔
#include<stdio.h> #include<string.h> #define N 110 int dp[N][N]; int a[N][N]; int Max(in ...
- 潜伏者(codevs 1171)
题目描述 Description [问题描述]R 国和S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的R 国间谍小C 终于摸清了S 国军用密码的编码规则:1. ...
- POJ 2104 K-th Number【整体二分 + 树状数组】
本来只是想学一下CDQ,还是先把整体二分搞懂一点. 这题窝几个月前分别用划分树,树套树,主席树和挑战上介绍的分桶法实现了一发(然而现在都忘得差不多了) 最快的是划分树,其次是主席树,然后是树套树,还有 ...
- HDU3430 (置换群循环节+中国剩余定理)
题意:给出n张牌,标号为1-n,然后给出两个序列,序列1表示序列1,2,3,4……,n洗一次牌后到达的,序列2表示目标序列,问初始序列按序列1的洗牌方式洗几次能到达序列2的情况,如果不能到达输出-1. ...
- codeforces 892E(离散化+可撤销并查集)
题意 给出一个n个点m条边的无向联通图(n,m<=5e5),有q(q<=5e5)个询问 每个询问询问一个边集{Ei},回答这些边能否在同一个最小生成树中 分析 要知道一个性质,就是权值不同 ...
- Linux 思维导图
1.Linux学习路径: 2.Linux桌面介绍: 3.FHS(文件系统目录标准): 以上三张图,都是在学习实验楼上的课程--Linux 基础入门,教程里面看到的. 4.Linux需要特别注意的目录: ...