本文实例讲述了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开发之电池低电量告警提示原理与实现方法分析相关推荐

  1. 普中HC6800V2.2开发板思考记录-继电器概念、原理、使用方法

    一,继电器 当输入量(如电压.电流.温度等)达到规定值时,使被控制的输出电路导通或断开的电器.可分为电气量(如电流.电压.频率.功率等)继电器及非电气量(如温度.压力.速度等)继电器两大类.具有动作快 ...

  2. 台式计算机提示电池低,电脑电量低时候不提示直接自动关机怎么解决

    一般电脑电量过低时候会提示我们及时充电,但是有时出现不提示,直接自动关机怎么回事呢.下面小编就跟大家分享下Win7笔记本低电量就自动关机的解决方法. 解决方法如下: 1.首先把鼠标移动到win7屏幕右 ...

  3. Android 5.0 API 的变化——开发人员注意

    Android 5.0 API变化 译自 http://developer.android.com/intl/zh-cn/about/versions/android-5.0.html -- By N ...

  4. Android 功耗优化(1)----使用Battery Historian生成电量消耗报告

    性能优化之电量优化-使用Battery Historian生成电量消耗报告 1 数据准备 1.1 先断开adb服务,然后开启adb服务 (a)adb kill-server 1 这一步很重要,因为当我 ...

  5. Android Studio 4.0.+NDK项目开发详细教学

    JNI开发系列目录 JNI开发必学C++基础 JNI开发必学C++使用实践 Android Studio 4.0.+NDK项目开发详细教学 Android NDK与JNI的区别有何不同? Androi ...

  6. Windows在结构Eclipse+Android4.0开发环境

    官方搭建步骤: http://developer.android.com/index.html 搭建好开发环境之前须要下载以下几个文件包: 一.安装Java执行环境JRE(没这个Eclipse执行不起 ...

  7. Windows下搭建Eclipse+Android4.0开发环境

    官方搭建步骤: http://developer.android.com/index.html 搭建好开发环境之前须要下载以下几个文件包: 一.安装Java执行环境JRE(没这个Eclipse执行不起 ...

  8. android 使用c 代码实现,JNI开发实现helloworld,调用自己的C代码实现(1)

    JNI开发,实现自己的C代码,helloworld 在这里实现一个简单的demo,完成加载自己的C代码 使用Android studio,一步一步教你实现在屏幕上显示出helloworld 如下图显示 ...

  9. android app 移植到pc,微软开发新应用把Android app“移植”到Win Phone

    依据微软2010年公布在Tweet上的一份专利申请书,微软正在开发一种新服务能够在不同的手机操作系统中"移植"应用和应用数据.这是说Android,iOS应用以后可以跨平台&quo ...

最新文章

  1. 修改adb shell在pc端显示的名称
  2. 关于MATLAB FFT频谱泄露和加窗
  3. PE文件详解(教程1-7)
  4. 看不到这些痛点,就无法入局智能制造
  5. jMenu 不添加item 直接自己添加监听actionPerformed不行mousePressed可以
  6. SugarCRM 去掉 模块标题左边的 问号 和 帮助
  7. Oracle命令--为数据文件缩容
  8. 一起学习C语言:C语言基本语法(二)
  9. 第七节:SpringBoot高级属性配置二
  10. python学习图解_大牛整理!Python学习方法和学习路线,看完茅塞顿开!
  11. linux基本命令示例_Linux ps命令– 20个真实示例
  12. 浅析IRF虚拟化技术增强企业网络架构的弹性
  13. 关于C和C++中的基本数据类型int、long、long long、float、double、char、string的大小及表示范围
  14. UltraVNC 使用方法详细说明
  15. ExoPlayer播放器剖析(一)进入ExoPlayer的世界
  16. 【如何高效管理Linkedin账号】
  17. 深度强化学习CS285-Lec18 Meta-Learning in RL
  18. 旅行也能玩儿转区块链?看星牛APP的!
  19. 设置Ajax为同步请求
  20. PlayStation 4,PlayStation 4 Slim和PlayStation 4 Pro之间有什么区别?

热门文章

  1. android 自定义baseadapter listview,android之ListView和BaseAdapter的组合使用
  2. windows服务器网站日志,windows服务器网站日志文件
  3. 矢量图标库如何引入html,Iconfont矢量图标库在网站中的使用方法
  4. mysql 注入 file load_Mysql注入中into outfile和load_file()总结
  5. jwt私钥和公钥怎么获取_jwt 用rsa公钥私钥进行验证(python发送,java接受)
  6. Visual Studio的Web Performance Test提取规则详解(1)
  7. 微信支付遇到的坑--签名错误
  8. 云通讯短信验证码实例
  9. conflicting types for ‘方法名’ 的错误
  10. Ext 3.0 +ASP.NET2.0 可视化开发介绍