Log.d("Battery", "" + intent.getIntExtra("level", 0));
//電池最大容量
Log.d("Battery", "" + intent.getIntExtra("scale", 0));
//電池伏數
Log.d("Battery", "" + intent.getIntExtra("voltage", 0));
//電池溫度
Log.d("Battery", "" + intent.getIntExtra("temperature", 0));
//電池狀態,返回是一個數字
// BatteryManager.BATTERY_STATUS_CHARGING 表示是充電狀態
// BatteryManager.BATTERY_STATUS_DISCHARGING 放電中
// BatteryManager.BATTERY_STATUS_NOT_CHARGING 未充電
// BatteryManager.BATTERY_STATUS_FULL 電池滿
//電池健康情況,返回也是一個數字
//BatteryManager.BATTERY_HEALTH_GOOD 良好
//BatteryManager.BATTERY_HEALTH_OVERHEAT 過熱
//BatteryManager.BATTERY_HEALTH_DEAD 沒電
//BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE 過電壓
//BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE 未知錯誤
一個顏色由四個通道組成:紅、綠、藍和alpha通道,他們的十六進制顏色值分別爲:紅:0xffff0000 綠:0xff00ff00 藍:0xff0000ff (第一個0xff表示透明度100%)。
黃色=綠色+紅色:0xffffff00
青色=綠色+藍色:0xff00ffff
品紅=紅色+藍色:0xffff00ff
if (level <= 20) {
try {
if (mLight != null)
mLightsService.close(mLight.getType());
} catch (Exception e) {
e.printStackTrace();
}
if (status == BatteryManager.BATTERY_STATUS_CHARGING) {
// Solid red when battery is charging
// mBatteryLight.setColor(mBatteryLowARGB);
mLight = new com.android.internal.policy.Light(Light.CHARGING, 3000, 5000, mBatteryLowARGB);
} else {
// Flash red when battery is low and not charging
// mBatteryLight.setFlashing(mBatteryLowARGB,
// LightsService.LIGHT_FLASH_TIMED,
// batteryLowLedOn, batteryLowLedOff);
mLight = new com.android.internal.policy.Light(Light.LOW_BATTERY, batteryLowLedOn,
batteryLowLedOff, mBatteryLowARGB);
}
try {
mLightsService.open(mLight);
} catch (Exception e) {
e.printStackTrace();
}
} else if (status == BatteryManager.BATTERY_STATUS_CHARGING
|| status == BatteryManager.BATTERY_STATUS_FULL){
try {
if (mLight != null)
mLightsService.close(mLight.getType());
} catch (Exception e) {
e.printStackTrace();
}
if(level < 90){
mLight = new com.android.internal.policy.Light(Light.CHARGING, 3000, 5000, mBatteryMediumARGB);
}else{
mLight = new com.android.internal.policy.Light(Light.CHARGE_COMPLETE,3000, 5000,mBatteryFullARGB);
}
try {
mLightsService.open(mLight);
} catch (Exception e) {
e.printStackTrace();
}
}else {
// mBatteryLight.turnOff();
try {
if (mLight != null)
mLightsService.close(mLight.getType());
else
mLightsService.close(com.android.internal.policy.Light.POWER_ALL); //i dont have time to test,set this to avoid the light not off
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上代碼根據電量控制顏色,且保證只有在充滿點或者正在充電中才會顯示燈亮,低於20會一直顯示