第一步:创建一个广播接收者,继承自BroadcastReceiver
private class BatteryLevelReceiver extends BroadcastReceiver{
@Orerride
public void onReceive(Context comtext,Intent intent){
String action = intent.getAction();
if(Intent.ACTION_BATTERY_CHANGED.equals(action)){
log.d(TAG,"receive the battery's change,action is:"+action);
int currentLevel = intent.getIntExtra(BatteryManage.EXTRA_LEVEL,0);
log.d(TAG,"the battery level is:"+currentLevel);//打印电池电量
int maxLevel = intent.getIntExtra(BatteryManage.EXTRA_SCALE,0);//电量最大值
float percent = currentLevel / maxLevel *100;
} else if(Intent.ACTION_POWER_CONNECTED.equals(action)){
log.d(TAG,"the usb is connected");//usb已连接
} else if(Intent.ACTION_POWER_DISCONNECTED.equals(action)){
log.d(TAG,"the usb is disconnected");//usb已断开
}
}
在Activity的onCreate()方法中写以下步骤(2-5):
第二步:要收听的频道是电量变化
IntentFilter it=new IntentFielter();
第三步:设置频道
it.addAction(Intent.ACTION_BATTERY_CHANGED);//电量发生改变时
it.addAction(Intent.ACTION_BATTERY_CONNECTED);//USB连接
it.addAction(Intent.ACTION_BATTERY_DISCONNECTED);//USB断开
第四步:
BatteryLevelReceiver blr=new BatteryLevelReceiver();
第五步:注册广播,动态注册形式
this.registerReceiver(blr,it);
}
@Orerride
public void onDestroy(Context comtext,Intent intent){
super.destroy();
if(blr!= null){
this.unregisterReceiver(blr);//取消监听,否则会导致内存泄漏
}
}