Launcher状态栏电池图标的处理:
1:注册电量改变广播接收器BroadcastReceiver (此广播只能通过context.registerReceiver()方法注册)
2:电量改变广播接收器BroadcastReceiver中
public void onReceive(Context context, Intent intent) {
int level = intent.getIntExtra("level", 0);
int batteryStatus = getBatteryStatus(intent); //获得电池状态
if(batteryStatus == 1) { //正在充电
if(level == 100)
batteryImage.setImageResource(R.drawable.battery_6_fully);
else
batteryImage.setImageResource(R.drawable.charge);
return;
}
//划分电量级别
if(level >= 0 && level <= 5)
batteryImage.setImageResource(R.drawable.battery_1_fully);
else if(level <= 24)
batteryImage.setImageResource(R.drawable.battery_2_fully);
else if(level <= 43)
batteryImage.setImageResource(R.drawable.battery_3_fully);
else if(level <= 62)
batteryImage.setImageResource(R.drawable.battery_4_fully);
else if(level <= 81)
batteryImage.setImageResource(R.drawable.battery_5_fully);
else if(level <= 100)
batteryImage.setImageResource(R.drawable.battery_6_fully);
}
//获得电池充电状态
//在电量变化监听器中.此广播接收的广播Action是Intent.ACTION_BATTERY_CHANGED
private int getBatteryStatus(Intent intent) {
int health = intent.getIntExtra("health", -1);
int status = intent.getIntExtra("status", -1);
if(status == BatteryManager.BATTERY_HEALTH_OVERHEAT) //bad status
return -1;
if(status == BatteryManager.BATTERY_STATUS_CHARGING) //charging
return 1;
return 0; //normal
}
1:注册电量改变广播接收器BroadcastReceiver (此广播只能通过context.registerReceiver()方法注册)
2:电量改变广播接收器BroadcastReceiver中
public void onReceive(Context context, Intent intent) {
int level = intent.getIntExtra("level", 0);
int batteryStatus = getBatteryStatus(intent); //获得电池状态
if(batteryStatus == 1) { //正在充电
if(level == 100)
batteryImage.setImageResource(R.drawable.battery_6_fully);
else
batteryImage.setImageResource(R.drawable.charge);
return;
}
//划分电量级别
if(level >= 0 && level <= 5)
batteryImage.setImageResource(R.drawable.battery_1_fully);
else if(level <= 24)
batteryImage.setImageResource(R.drawable.battery_2_fully);
else if(level <= 43)
batteryImage.setImageResource(R.drawable.battery_3_fully);
else if(level <= 62)
batteryImage.setImageResource(R.drawable.battery_4_fully);
else if(level <= 81)
batteryImage.setImageResource(R.drawable.battery_5_fully);
else if(level <= 100)
batteryImage.setImageResource(R.drawable.battery_6_fully);
}
//获得电池充电状态
//在电量变化监听器中.此广播接收的广播Action是Intent.ACTION_BATTERY_CHANGED
private int getBatteryStatus(Intent intent) {
int health = intent.getIntExtra("health", -1);
int status = intent.getIntExtra("status", -1);
if(status == BatteryManager.BATTERY_HEALTH_OVERHEAT) //bad status
return -1;
if(status == BatteryManager.BATTERY_STATUS_CHARGING) //charging
return 1;
return 0; //normal
}