IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
Intent intent = registerReceiver(null, filter);
LogUtils.i("battery " + intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1));
ACTION_BATTERY_CHANGED
- 获取手机电池电量,充电状态,电池状态等信息
Battery Historian
- 5.0(API 21)及以上系统的电量分析
- 强大,适合线下使用
电量辅助监控实战
总结
onStartJob执行在主线程
https://github.com/codeguyFred/MyPerformance/blob/master/app/src/main/java/com/optimize/performance/net/JobSchedulerService.java
/**
* 演示JobScheduler的使用,需要在处于wifi和充电状态下才会执行
*/
private void startJobScheduler() {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
JobScheduler jobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
JobInfo.Builder builder = new JobInfo.Builder(1, new ComponentName(getPackageName(), JobSchedulerService.class.getName()));
builder.setRequiresCharging(true)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
jobScheduler.schedule(builder.build());
}
}