[Android4.4]电池低电量告警提示
16lz
2021-01-26
之前版本的电池电量低是通过发送 intent ACTION_BATTERY_LOW来实现的,而在android4.4
中,通过发送intent ACTION_BATTERY_CHANGED,也就是电池电量只要变化就检查是否需要
低电量告警,并且实现挪到了PowerUI中。
接着如下函数就会被调用:
我遇到的问题在于插上充电座之后开机仍然显示低电量告警,提示要插入充电器,出现这个问题的
原因在于: 电池是另外一块板子供的,所以没有插拔信息,并且battery status默认情况下也是
BATTERY_STATUS_UNKNOWN。
因此只要将status改成BATTERY_STATUS_CHARGING就能修复此问题了~
中,通过发送intent ACTION_BATTERY_CHANGED,也就是电池电量只要变化就检查是否需要
低电量告警,并且实现挪到了PowerUI中。
路径:
frameworks/base/packages/SystemUI/src/com/Android/systemui/power/PowerUI.Java
[cpp] view plain copy
- 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);
- }
接着如下函数就会被调用:
[cpp] view plain copy
- 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();
- ......
- }
- }
- };
我遇到的问题在于插上充电座之后开机仍然显示低电量告警,提示要插入充电器,出现这个问题的
原因在于: 电池是另外一块板子供的,所以没有插拔信息,并且battery status默认情况下也是
BATTERY_STATUS_UNKNOWN。
因此只要将status改成BATTERY_STATUS_CHARGING就能修复此问题了~
更多相关文章
- 在notification中设置PendingIntent
- Android(安卓)使用Socket实现服务器与手机客户端的长连接四:使用
- 赵雅智:Android短信发送器
- android网格连接
- Android(安卓)EventBus简单使用
- Android(安卓)---模拟手机发送短信
- Android(安卓)蓝牙搜索,配对,连接发送数据
- Android(安卓)消息处理机制: Handler 中 sendMessage()方法的几
- Android使用HttpPost向服务器发送Json数据