写一个类,继承BroadcastReceiver类,可以获取到android系统电量的相关信息
private class MyBatteryReceiver extends BroadcastReceiver{ @Override
public void onReceive(Context context, Intent intent)
{
int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
if(usbCharge || acCharge){
mChargingLogo.setVisibility(View.VISIBLE);
mAnimationDrawable = (AnimationDrawable) mChargingLogo.getBackground();
mAnimationDrawable.start();
}else{
mChargingLogo.setVisibility(View.GONE);
mAnimationDrawable.stop();
}
int current = intent.getExtras().getInt("level"); //获得当前电量
int total = intent.getExtras().getInt("scale"); //获得总电量
int percent = current*100/total; //计算百分比
}
}
其中,下面这几行代码是判断android设备是否正在充电,不管是用USB设备,还是AC电源对其进行充电。
int chargePlug = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
然后注册一个BroadcastReceiver即可。
MyBatteryReceiver batteryReceiver = new MyBatteryReceiver();
IntentFilter batteryFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryReceiver, batteryFilter);