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);
}