全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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硬件相关操作与应用总结》、《Android文件操作技巧汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。


# Android4.4  # 电池  # 低电量  # 告警提示  # Android编程之电池电量信息更新的方法(基于BatteryService实现)  # Android优化之电量优化的实现  # Android电池电量跳变  # Android省电的秘密之JobScheduler  # Android实现显示电量的控件代码  # Android开发教程之电源管理详解  # Android编程实现检测当前电源状态的方法  # android电源信息查看(电量、温度、电压)实例代码  # 如何通过Battery Historian分析Android APP耗电情况  # 就会  # 的是  # 进阶  # 操作技巧  # 相关内容  # 就能  # 而在  # 这个问题  # 感兴趣  # 给大家  # 要将  # 更多关于  # 来实现  # 所述  # 对话框  # 插上  # 程序设计  # 情况下  # 插拔 


相关文章: 中山网站推广排名,中山信息港登录入口?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  建站主机无法访问?如何排查域名与服务器问题  如何在企业微信快速生成手机电脑官网?  如何确认建站备案号应放置的具体位置?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  建站之星如何防范黑客攻击与数据泄露?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何在阿里云高效完成企业建站全流程?  想学网站制作怎么学,建立一个网站要花费多少?  如何通过NAT技术实现内网高效建站?  如何通过主机屋免费建站教程十分钟搭建网站?  如何在橙子建站中快速调整背景颜色?  如何构建满足综合性能需求的优质建站方案?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  建站之星如何实现PC+手机+微信网站五合一建站?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  海南网站制作公司有哪些,海口网是哪家的?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  盘锦网站制作公司,盘锦大洼有多少5G网站?  如何快速辨别茅台真假?关键步骤解析  建站主机选哪种环境更利于SEO优化?  平台云上自主建站:模板化设计与智能工具打造高效网站  建站之星×万网:智能建站系统+自助建站平台一键生成  临沂网站制作公司有哪些,临沂第四中学官网?  ,sp开头的版面叫什么?  如何快速重置建站主机并恢复默认配置?  如何在阿里云ECS服务器部署织梦CMS网站?  建站之星与建站宝盒如何选择最佳方案?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  模具网站制作流程,如何找模具客户?  ,石家庄四十八中学官网?  完全自定义免费建站平台:主题模板在线生成一站式服务  如何选择高性价比服务器搭建个人网站?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  建站主机如何安装配置?新手必看操作指南  建站之星后台管理:高效配置与模板优化提升用户体验  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  建站之星如何修改网站生成路径?  网站制作说明怎么写,简述网页设计的流程并说明原因?  建站主机选购指南:核心配置优化与品牌推荐方案  建站之星会员如何解锁更多建站功能?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  如何选择建站程序?包含哪些必备功能与类型? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。