Android閃光燈電池相關

  //電池電量,數字
               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會一直顯示
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章