1 需求: 监控电量状态
比如:360手机助手,当充上电的时候,才会自动清理手机垃圾,自动备份上传图片、联系人等到云端。
2 原理
通过监控电量状态来进行电量管理。
- 获取手机的当前充电状
- 判断只有当前手机为充电状态时 才去执行一些非常耗电的操作。
3 是否充电代码
private boolean checkForPower() {
//获取电池的充电状态
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent intent = registerReceiver(null, filter);
//BatteryManager
int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean usb = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean ac = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
//无线充电---API>=17
boolean wireless = false;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
wireless = chargePlug == BatteryManager.BATTERY_PLUGGED_WIRELESS;
}
return (usb||ac||wireless);
}