确定Android电池当前是否为低电量

时间:2017-06-28 20:25:16

标签: android batterymanager

我知道我可以为BroadcastReceiverACTION_BATTERY_LOW注册ACTION_BATTERY_OKAY,当电池电量不足状态更改时会通知我的应用,但是如何我可以确定电池当前 LOW还是OKAY?

BatteryManager可以让我获得当前的百分比和状态,但它似乎没有公开LOW的状态。

2 个答案:

答案 0 :(得分:1)

ACTION_BATTERY_CHANGED 广播是粘性广播。其中一项是 ACTION_BATTERY_LOW

所以这个小方法应该可以满足您的需求

private boolean isBattteryLow() {
    IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
    Intent batteryIntent = context.registerReceiver(null, filter);
    return batteryIntent.getBooleanExtra(BatteryManager.EXTRA_BATTERY_LOW, false);
}

答案 1 :(得分:0)

如果您想知道系统向您发送LOW状态的百分比,最好在清单中注册ACTION_BATTERY_LOW广播接收器,并从{{1}计算百分比当您收到BatteryManager事件时,请将其保存并稍后使用,以根据您可以从LOW获取的数据来确定LOW状态。

由于BatteryManager广播不粘,我想这是唯一的方法。

我认为大多数设备发送LOW事件为15%,所以这将是一个很好的起点。