我知道我可以为BroadcastReceiver
和ACTION_BATTERY_LOW
注册ACTION_BATTERY_OKAY
,当电池电量不足状态更改时会通知我的应用,但是如何我可以确定电池当前 LOW还是OKAY?
BatteryManager
可以让我获得当前的百分比和状态,但它似乎没有公开LOW的状态。
答案 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%,所以这将是一个很好的起点。