欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android4.4开发之电池低电量告警提示原理与实现方法分析

程序员文章站 2023-12-14 22:32:46
本文实例讲述了android4.4电池低电量告警提示原理与实现方法。分享给大家供大家参考,具体如下: 之前版本的电池电量低是通过发送 intent action_batt...

本文实例讲述了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程序设计有所帮助。

上一篇:

下一篇: