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程序设计有所帮助。