Created
April 8, 2016 07:06
-
-
Save guptasanchit90/bd1c075ac39a9faf2a60840803bd03d2 to your computer and use it in GitHub Desktop.
A wrapper class to provide battery information
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.content.Intent; | |
import android.content.IntentFilter; | |
import android.os.BatteryManager; | |
import com.mobyta.mobilewebdashboard.ThisApplication; | |
public class BatteryHelper { | |
private Intent mBatteryDataIntent; | |
public BatteryHelper() { | |
IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); | |
mBatteryDataIntent = ThisApplication.getInstance().registerReceiver(null, batteryLevelFilter); | |
} | |
public String getChargingMode() { | |
switch (mBatteryDataIntent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1)) { | |
case BatteryManager.BATTERY_PLUGGED_AC: | |
return "AC Power"; | |
case BatteryManager.BATTERY_PLUGGED_USB: | |
return "USB Cable"; | |
default: | |
return "None"; | |
} | |
} | |
public String getChargingState() { | |
switch (mBatteryDataIntent.getIntExtra(BatteryManager.EXTRA_STATUS, -1)) { | |
case BatteryManager.BATTERY_STATUS_CHARGING: | |
return "Charginig"; | |
case BatteryManager.BATTERY_STATUS_DISCHARGING: | |
return "Discharging"; | |
case BatteryManager.BATTERY_STATUS_FULL: | |
return "Full"; | |
case BatteryManager.BATTERY_STATUS_NOT_CHARGING: | |
return "Not Charging"; | |
default: | |
return "Not Charging"; | |
} | |
} | |
public String getChargingPercentage() { | |
int rawlevel = mBatteryDataIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); | |
int scale = mBatteryDataIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); | |
int level = -1; | |
if (rawlevel >= 0 && scale > 0) { | |
level = (rawlevel * 100) / scale; | |
} | |
return String.valueOf(level); | |
} | |
public String getBatteryHealth() { | |
switch (mBatteryDataIntent.getIntExtra(BatteryManager.EXTRA_HEALTH, -1)) { | |
case BatteryManager.BATTERY_HEALTH_COLD: | |
return "Cold"; | |
case BatteryManager.BATTERY_HEALTH_DEAD: | |
return "Dead"; | |
case BatteryManager.BATTERY_HEALTH_GOOD: | |
return "Good"; | |
case BatteryManager.BATTERY_HEALTH_OVERHEAT: | |
return "Over Heat"; | |
case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE: | |
return "Over Voltage"; | |
case BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE: | |
return "Unspecified Failure"; | |
case BatteryManager.BATTERY_HEALTH_UNKNOWN: | |
return "Unknown"; | |
default: | |
return "Unknown Error"; | |
} | |
} | |
public String getTemperature() { | |
return String.valueOf((mBatteryDataIntent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, 0)) / 10); | |
} | |
public String getBatteryTechnology() { | |
return mBatteryDataIntent.getExtras().getString(BatteryManager.EXTRA_TECHNOLOGY); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment