当前位置: 移动技术网 > IT编程>移动开发>Android > Android4.4开发之电池低电量告警提示原理与实现方法分析

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

守望堡的波尼,渗透测试工具,达州信息网

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网