Skip to content

Instantly share code, notes, and snippets.

@guptasanchit90
Created April 8, 2016 07:06
Show Gist options
  • Save guptasanchit90/bd1c075ac39a9faf2a60840803bd03d2 to your computer and use it in GitHub Desktop.
Save guptasanchit90/bd1c075ac39a9faf2a60840803bd03d2 to your computer and use it in GitHub Desktop.
A wrapper class to provide battery information
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