//电池电量,数字
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 过电压
以上代码根据电量控制颜色,且保证只有在充满点或者正在充电中才会显示灯亮,低于20会一直显示
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会一直显示