BatteryManager


public class BatteryManager
extends Object

java.lang.Object
   ↳ android.os.BatteryManager


The BatteryManager class contains strings and constants used for values in the Intent.ACTION_BATTERY_CHANGED Intent, and provides a method for querying battery and charging properties.

Summary

Constants

String ACTION_CHARGING

Sent when the device's battery has started charging (or has reached full charge and the device is on power).

String ACTION_DISCHARGING

Sent when the device's battery may be discharging, so apps should avoid doing extraneous work that would cause it to discharge faster.

int BATTERY_CAPACITY_LEVEL_CRITICAL

Battery capacity level is critical.

int BATTERY_CAPACITY_LEVEL_FULL

Battery capacity level is full.

int BATTERY_CAPACITY_LEVEL_HIGH

Battery capacity level is high.

int BATTERY_CAPACITY_LEVEL_LOW

Battery capacity level is low.

int BATTERY_CAPACITY_LEVEL_NORMAL

Battery capacity level is normal.

int BATTERY_CAPACITY_LEVEL_UNKNOWN

Battery capacity level is unknown.

int BATTERY_CAPACITY_LEVEL_UNSUPPORTED

Battery capacity level is unsupported.

int BATTERY_HEALTH_COLD

int BATTERY_HEALTH_DEAD

int BATTERY_HEALTH_GOOD

int BATTERY_HEALTH_OVERHEAT

int BATTERY_HEALTH_OVER_VOLTAGE

int BATTERY_HEALTH_UNKNOWN

int BATTERY_HEALTH_UNSPECIFIED_FAILURE

int BATTERY_PLUGGED_AC

Power source is an AC charger.

int BATTERY_PLUGGED_DOCK

Power source is dock.

int BATTERY_PLUGGED_USB

Power source is a USB port.

int BATTERY_PLUGGED_WIRELESS

Power source is wireless.

int BATTERY_PROPERTY_CAPACITY

Remaining battery capacity as an integer percentage of total capacity (with no fractional part).

int BATTERY_PROPERTY_CHARGE_COUNTER

Battery capacity in microampere-hours, as an integer.

int BATTERY_PROPERTY_CURRENT_AVERAGE

Average battery current in microamperes, as an integer.

int BATTERY_PROPERTY_CURRENT_NOW

Instantaneous battery current in microamperes, as an integer.

int BATTERY_PROPERTY_ENERGY_COUNTER

Battery remaining energy in nanowatt-hours, as a long integer.

int BATTERY_PROPERTY_STATE_OF_HEALTH

Percentage representing the measured battery state of health.

int BATTERY_PROPERTY_STATUS

Battery charge status, from a BATTERY_STATUS_* value.

int BATTERY_STATUS_CHARGING

int BATTERY_STATUS_DISCHARGING

int BATTERY_STATUS_FULL

int BATTERY_STATUS_NOT_CHARGING

int BATTERY_STATUS_UNKNOWN

String EXTRA_BATTERY_LOW

Extra for Intent.ACTION_BATTERY_CHANGED: Boolean field indicating whether the battery is currently considered to be low, that is whether a Intent.ACTION_BATTERY_LOW broadcast has been sent.

String EXTRA_CAPACITY_LEVEL

Extra for Intent.ACTION_BATTERY_CHANGED: Int value representing the battery's capacity level.

String EXTRA_CHARGING_STATUS

Extra for Intent.ACTION_BATTERY_CHANGED: Int value representing the battery charging status.

String EXTRA_CYCLE_COUNT

Extra for Intent.ACTION_BATTERY_CHANGED: Int value representing the battery charging cycle count.

String EXTRA_HEALTH

Extra for Intent.ACTION_BATTERY_CHANGED: integer containing the current health constant.

String EXTRA_ICON_SMALL

Extra for Intent.ACTION_BATTERY_CHANGED: integer containing the resource ID of a small status bar icon indicating the current battery state.

String EXTRA_LEVEL

Extra for Intent.ACTION_BATTERY_CHANGED: integer field containing the current battery level, from 0 to EXTRA_SCALE.

String EXTRA_PLUGGED

Extra for Intent.ACTION_BATTERY_CHANGED: integer indicating whether the device is plugged in to a power source; 0 means it is on battery, other constants are different types of power sources.

String EXTRA_PRESENT

Extra for Intent.ACTION_BATTERY_CHANGED: boolean indicating whether a battery is present.

String EXTRA_SCALE

Extra for Intent.ACTION_BATTERY_CHANGED: integer containing the maximum battery level.

String EXTRA_STATUS

Extra for Intent.ACTION_BATTERY_CHANGED: integer containing the current status constant.

String EXTRA_TECHNOLOGY

Extra for Intent.ACTION_BATTERY_CHANGED: String describing the technology of the current battery.

String EXTRA_TEMPERATURE

Extra for Intent.ACTION_BATTERY_CHANGED: integer containing the current battery temperature.

String EXTRA_VOLTAGE

Extra for Intent.ACTION_BATTERY_CHANGED: integer containing the current battery voltage level.

Public methods

long computeChargeTimeRemaining()

Compute an approximation for how much time (in milliseconds) remains until the battery is fully charged.

int getIntProperty(int id)

Return the value of a battery property of integer type.

long getLongProperty(int id)

Return the value of a battery property of long type If the platform does not provide the property queried, this value will be Long.MIN_VALUE.

String getStringProperty(int id)

Return the value of a battery property of String type.

boolean isCharging()

Return true if the battery is currently considered to be charging.

Inherited methods

Constants

ACTION_CHARGING

Added in API level 23
public static final String ACTION_CHARGING

Sent when the device's battery has started charging (or has reached full charge and the device is on power). This is a good time to do work that you would like to avoid doing while on battery (that is to avoid draining the user's battery due to things they don't care enough about). This is paired with ACTION_DISCHARGING. The current state can always be retrieved with isCharging().

Constant Value: "android.os.action.CHARGING"

ACTION_DISCHARGING

Added in API level 23
public static final String ACTION_DISCHARGING

Sent when the device's battery may be discharging, so apps should avoid doing extraneous work that would cause it to discharge faster. This is paired with ACTION_CHARGING. The current state can always be retrieved with isCharging().

Constant Value: "android.os.action.DISCHARGING"

BATTERY_CAPACITY_LEVEL_CRITICAL

public static final int BATTERY_CAPACITY_LEVEL_CRITICAL

Battery capacity level is critical. @see EXTRA_CAPACITY_LEVEL

Constant Value: 1 (0x00000001)

BATTERY_CAPACITY_LEVEL_FULL

public static final int BATTERY_CAPACITY_LEVEL_FULL

Battery capacity level is full. @see EXTRA_CAPACITY_LEVEL

Constant Value: 5 (0x00000005)

BATTERY_CAPACITY_LEVEL_HIGH

public static final int BATTERY_CAPACITY_LEVEL_HIGH

Battery capacity level is high. @see EXTRA_CAPACITY_LEVEL

Constant Value: 4 (0x00000004)

BATTERY_CAPACITY_LEVEL_LOW

public static final int BATTERY_CAPACITY_LEVEL_LOW

Battery capacity level is low. @see EXTRA_CAPACITY_LEVEL

Constant Value: 2 (0x00000002)

BATTERY_CAPACITY_LEVEL_NORMAL

public static final int BATTERY_CAPACITY_LEVEL_NORMAL

Battery capacity level is normal. @see EXTRA_CAPACITY_LEVEL

Constant Value: 3 (0x00000003)

BATTERY_CAPACITY_LEVEL_UNKNOWN

public static final int BATTERY_CAPACITY_LEVEL_UNKNOWN

Battery capacity level is unknown. @see EXTRA_CAPACITY_LEVEL

Constant Value: 0 (0x00000000)

BATTERY_CAPACITY_LEVEL_UNSUPPORTED

public static final int BATTERY_CAPACITY_LEVEL_UNSUPPORTED

Battery capacity level is unsupported. @see EXTRA_CAPACITY_LEVEL

Constant Value: -1 (0xffffffff)

BATTERY_HEALTH_COLD

Added in API level 11
public static final int BATTERY_HEALTH_COLD

Constant Value: 7 (0x00000007)

BATTERY_HEALTH_DEAD

Added in API level 1
public static final int BATTERY_HEALTH_DEAD

Constant Value: 4 (0x00000004)

BATTERY_HEALTH_GOOD

Added in API level 1
public static final int BATTERY_HEALTH_GOOD

Constant Value: 2 (0x00000002)

BATTERY_HEALTH_OVERHEAT

Added in API level 1
public static final int BATTERY_HEALTH_OVERHEAT

Constant Value: 3 (0x00000003)

BATTERY_HEALTH_OVER_VOLTAGE

Added in API level 1
public static final int BATTERY_HEALTH_OVER_VOLTAGE

Constant Value: 5 (0x00000005)

BATTERY_HEALTH_UNKNOWN

Added in API level 1
public static final int BATTERY_HEALTH_UNKNOWN

Constant Value: 1 (0x00000001)

BATTERY_HEALTH_UNSPECIFIED_FAILURE

Added in API level 1
public static final int BATTERY_HEALTH_UNSPECIFIED_FAILURE

Constant Value: 6 (0x00000006)

BATTERY_PLUGGED_AC

Added in API level 1
public static final int BATTERY_PLUGGED_AC

Power source is an AC charger.

Constant Value: 1 (0x00000001)

BATTERY_PLUGGED_DOCK

Added in API level 33
public static final int BATTERY_PLUGGED_DOCK

Power source is dock.

Constant Value: 8 (0x00000008)

BATTERY_PLUGGED_USB

Added in API level 1
public static final int BATTERY_PLUGGED_USB

Power source is a USB port.

Constant Value: 2 (0x00000002)

BATTERY_PLUGGED_WIRELESS

Added in API level 17
public static final int BATTERY_PLUGGED_WIRELESS

Power source is wireless.

Constant Value: 4 (0x00000004)

BATTERY_PROPERTY_CAPACITY

Added in API level 21
public static final int BATTERY_PROPERTY_CAPACITY

Remaining battery capacity as an integer percentage of total capacity (with no fractional part).

Constant Value: 4 (0x00000004)

BATTERY_PROPERTY_CHARGE_COUNTER

Added in API level 21
public static final int BATTERY_PROPERTY_CHARGE_COUNTER

Battery capacity in microampere-hours, as an integer.

Constant Value: 1 (0x00000001)

BATTERY_PROPERTY_CURRENT_AVERAGE

Added in API level 21
public static final int BATTERY_PROPERTY_CURRENT_AVERAGE

Average battery current in microamperes, as an integer. Positive values indicate net current entering the battery from a charge source, negative values indicate net current discharging from the battery. The time period over which the average is computed may depend on the fuel gauge hardware and its configuration.

Constant Value: 3 (0x00000003)

BATTERY_PROPERTY_CURRENT_NOW

Added in API level 21
public static final int BATTERY_PROPERTY_CURRENT_NOW

Instantaneous battery current in microamperes, as an integer. Positive values indicate net current entering the battery from a charge source, negative values indicate net current discharging from the battery.

Constant Value: 2 (0x00000002)

BATTERY_PROPERTY_ENERGY_COUNTER

Added in API level 21
public static final int BATTERY_PROPERTY_ENERGY_COUNTER

Battery remaining energy in nanowatt-hours, as a long integer.

Constant Value: 5 (0x00000005)

BATTERY_PROPERTY_STATE_OF_HEALTH

public static final int BATTERY_PROPERTY_STATE_OF_HEALTH

Percentage representing the measured battery state of health. This is the remaining estimated full charge capacity relative to the rated capacity in %.

Constant Value: 10 (0x0000000a)

BATTERY_PROPERTY_STATUS

Added in API level 26
public static final int BATTERY_PROPERTY_STATUS

Battery charge status, from a BATTERY_STATUS_* value.

Constant Value: 6 (0x00000006)

BATTERY_STATUS_CHARGING

Added in API level 1
public static final int BATTERY_STATUS_CHARGING

Constant Value: 2 (0x00000002)

BATTERY_STATUS_DISCHARGING

Added in API level 1
public static final int BATTERY_STATUS_DISCHARGING

Constant Value: 3 (0x00000003)

BATTERY_STATUS_FULL

Added in API level 1
public static final int BATTERY_STATUS_FULL

Constant Value: 5 (0x00000005)

BATTERY_STATUS_NOT_CHARGING

Added in API level 1
public static final int BATTERY_STATUS_NOT_CHARGING

Constant Value: 4 (0x00000004)

BATTERY_STATUS_UNKNOWN

Added in API level 1
public static final int BATTERY_STATUS_UNKNOWN

Constant Value: 1 (0x00000001)

EXTRA_BATTERY_LOW

Added in API level 28
public static final String EXTRA_BATTERY_LOW

Extra for Intent.ACTION_BATTERY_CHANGED: Boolean field indicating whether the battery is currently considered to be low, that is whether a Intent.ACTION_BATTERY_LOW broadcast has been sent.

Constant Value: "battery_low"

EXTRA_CAPACITY_LEVEL

public static final String EXTRA_CAPACITY_LEVEL

Extra for Intent.ACTION_BATTERY_CHANGED: Int value representing the battery's capacity level. These constants are key indicators of battery status and system capabilities, guiding power management decisions for both the system and apps: BATTERY_CAPACITY_LEVEL_UNSUPPORTED: Feature not supported on this device. BATTERY_CAPACITY_LEVEL_UNKNOWN: Battery status is unavailable or uninitialized. BATTERY_CAPACITY_LEVEL_CRITICAL: Battery is critically low and the Android framework has been notified to schedule a shutdown by this value BATTERY_CAPACITY_LEVEL_LOW: Android framework must limit background jobs to avoid impacting charging speed BATTERY_CAPACITY_LEVEL_NORMAL: Battery level and charging rates are normal, battery temperature is within normal range and adapter power is enough to charge the battery at an acceptable rate. Android framework can run light background tasks without affecting charging performance severely. BATTERY_CAPACITY_LEVEL_HIGH: Battery level is high, battery temperature is within normal range and adapter power is enough to charge the battery at an acceptable rate while running background loads. Android framework can run background tasks without affecting charging or battery performance. BATTERY_CAPACITY_LEVEL_FULL: The battery is full, battery temperature is within normal range and adapter power is enough to sustain running background loads. Android framework can run background tasks without affecting the battery level or battery performance.

Constant Value: "android.os.extra.CAPACITY_LEVEL"

EXTRA_CHARGING_STATUS

Added in API level 34
public static final String EXTRA_CHARGING_STATUS

Extra for Intent.ACTION_BATTERY_CHANGED: Int value representing the battery charging status.

Constant Value: "android.os.extra.CHARGING_STATUS"

EXTRA_CYCLE_COUNT

Added in API level 34
public static final String EXTRA_CYCLE_COUNT

Extra for Intent.ACTION_BATTERY_CHANGED: Int value representing the battery charging cycle count.

Constant Value: "android.os.extra.CYCLE_COUNT"

EXTRA_HEALTH

Added in API level 5
public static final String EXTRA_HEALTH

Extra for Intent.ACTION_BATTERY_CHANGED: integer containing the current health constant.

Constant Value: "health"

EXTRA_ICON_SMALL

Added in API level 5
public static final String EXTRA_ICON_SMALL

Extra for Intent.ACTION_BATTERY_CHANGED: integer containing the resource ID of a small status bar icon indicating the current battery state.

Constant Value: "icon-small"

EXTRA_LEVEL

Added in API level 5
public static final String EXTRA_LEVEL

Extra for Intent.ACTION_BATTERY_CHANGED: integer field containing the current battery level, from 0 to EXTRA_SCALE.

Constant Value: "level"

EXTRA_PLUGGED

Added in API level 5
public static final String EXTRA_PLUGGED

Extra for Intent.ACTION_BATTERY_CHANGED: integer indicating whether the device is plugged in to a power source; 0 means it is on battery, other constants are different types of power sources.

Constant Value: "plugged"

EXTRA_PRESENT

Added in API level 5
public static final String EXTRA_PRESENT

Extra for Intent.ACTION_BATTERY_CHANGED: boolean indicating whether a battery is present.

Constant Value: "present"

EXTRA_SCALE

Added in API level 5
public static final String EXTRA_SCALE

Extra for Intent.ACTION_BATTERY_CHANGED: integer containing the maximum battery level.

Constant Value: "scale"

EXTRA_STATUS

Added in API level 5
public static final String EXTRA_STATUS

Extra for Intent.ACTION_BATTERY_CHANGED: integer containing the current status constant.

Constant Value: "status"

EXTRA_TECHNOLOGY

Added in API level 5
public static final String EXTRA_TECHNOLOGY

Extra for Intent.ACTION_BATTERY_CHANGED: String describing the technology of the current battery.

Constant Value: "technology"

EXTRA_TEMPERATURE

Added in API level 5
public static final String EXTRA_TEMPERATURE

Extra for Intent.ACTION_BATTERY_CHANGED: integer containing the current battery temperature.

Constant Value: "temperature"

EXTRA_VOLTAGE

Added in API level 5
public static final String EXTRA_VOLTAGE

Extra for Intent.ACTION_BATTERY_CHANGED: integer containing the current battery voltage level.

Constant Value: "voltage"

Public methods

computeChargeTimeRemaining

Added in API level 28
public long computeChargeTimeRemaining ()

Compute an approximation for how much time (in milliseconds) remains until the battery is fully charged. Returns -1 if no time can be computed: either there is not enough current data to make a decision or the battery is currently discharging.

Returns
long how much time is left, in milliseconds, until the battery is fully charged or -1 if the computation fails

getIntProperty

Added in API level 21
public int getIntProperty (int id)

Return the value of a battery property of integer type.

Parameters
id int: identifier of the requested property

Returns
int the property value. If the property is not supported or there is any other error, return (a) 0 if targetSdkVersion < VERSION_CODES.P or (b) Integer.MIN_VALUE if targetSdkVersion >= VERSION_CODES.P.

getLongProperty

Added in API level 21
public long getLongProperty (int id)

Return the value of a battery property of long type If the platform does not provide the property queried, this value will be Long.MIN_VALUE.

Parameters
id int: identifier of the requested property

Returns
long the property value, or Long.MIN_VALUE if not supported.

getStringProperty

Added in API level 35
public String getStringProperty (int id)

Return the value of a battery property of String type. If the platform does not provide the property queried, this value will be null.

Parameters
id int: identifier of the requested property.

Returns
String the property value, or null if not supported.

isCharging

Added in API level 23
public boolean isCharging ()

Return true if the battery is currently considered to be charging. This means that the device is plugged in and is supplying sufficient power that the battery level is going up (or the battery is fully charged). Changes in this state are matched by broadcasts of ACTION_CHARGING and ACTION_DISCHARGING.

Returns
boolean