Android APIs
public class

BatteryManager

extends Object
java.lang.Object
   ↳ android.os.BatteryManager

Class Overview

The BatteryManager class contains strings and constants used for values in the 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_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_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_STATUS_CHARGING
int BATTERY_STATUS_DISCHARGING
int BATTERY_STATUS_FULL
int BATTERY_STATUS_NOT_CHARGING
int BATTERY_STATUS_UNKNOWN
String EXTRA_HEALTH Extra for ACTION_BATTERY_CHANGED: integer containing the current health constant.
String EXTRA_ICON_SMALL Extra for ACTION_BATTERY_CHANGED: integer containing the resource ID of a small status bar icon indicating the current battery state.
String EXTRA_LEVEL Extra for ACTION_BATTERY_CHANGED: integer field containing the current battery level, from 0 to EXTRA_SCALE.
String EXTRA_PLUGGED Extra for 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 ACTION_BATTERY_CHANGED: boolean indicating whether a battery is present.
String EXTRA_SCALE Extra for ACTION_BATTERY_CHANGED: integer containing the maximum battery level.
String EXTRA_STATUS Extra for ACTION_BATTERY_CHANGED: integer containing the current status constant.
String EXTRA_TECHNOLOGY Extra for ACTION_BATTERY_CHANGED: String describing the technology of the current battery.
String EXTRA_TEMPERATURE Extra for ACTION_BATTERY_CHANGED: integer containing the current battery temperature.
String EXTRA_VOLTAGE Extra for ACTION_BATTERY_CHANGED: integer containing the current battery voltage level.
Public Methods
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.
boolean isCharging()
Return true if the battery is currently considered to be charging.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final String ACTION_CHARGING

Added in API level 23

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"

public static final String ACTION_DISCHARGING

Added in API level 23

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"

public static final int BATTERY_HEALTH_COLD

Added in API level 11

Constant Value: 7 (0x00000007)

public static final int BATTERY_HEALTH_DEAD

Added in API level 1

Constant Value: 4 (0x00000004)

public static final int BATTERY_HEALTH_GOOD

Added in API level 1

Constant Value: 2 (0x00000002)

public static final int BATTERY_HEALTH_OVERHEAT

Added in API level 1

Constant Value: 3 (0x00000003)

public static final int BATTERY_HEALTH_OVER_VOLTAGE

Added in API level 1

Constant Value: 5 (0x00000005)

public static final int BATTERY_HEALTH_UNKNOWN

Added in API level 1

Constant Value: 1 (0x00000001)

public static final int BATTERY_HEALTH_UNSPECIFIED_FAILURE

Added in API level 1

Constant Value: 6 (0x00000006)

public static final int BATTERY_PLUGGED_AC

Added in API level 1

Power source is an AC charger.

Constant Value: 1 (0x00000001)

public static final int BATTERY_PLUGGED_USB

Added in API level 1

Power source is a USB port.

Constant Value: 2 (0x00000002)

public static final int BATTERY_PLUGGED_WIRELESS

Added in API level 17

Power source is wireless.

Constant Value: 4 (0x00000004)

public static final int BATTERY_PROPERTY_CAPACITY

Added in API level 21

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

Constant Value: 4 (0x00000004)

public static final int BATTERY_PROPERTY_CHARGE_COUNTER

Added in API level 21

Battery capacity in microampere-hours, as an integer.

Constant Value: 1 (0x00000001)

public static final int BATTERY_PROPERTY_CURRENT_AVERAGE

Added in API level 21

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)

public static final int BATTERY_PROPERTY_CURRENT_NOW

Added in API level 21

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)

public static final int BATTERY_PROPERTY_ENERGY_COUNTER

Added in API level 21

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

Constant Value: 5 (0x00000005)

public static final int BATTERY_STATUS_CHARGING

Added in API level 1

Constant Value: 2 (0x00000002)

public static final int BATTERY_STATUS_DISCHARGING

Added in API level 1

Constant Value: 3 (0x00000003)

public static final int BATTERY_STATUS_FULL

Added in API level 1

Constant Value: 5 (0x00000005)

public static final int BATTERY_STATUS_NOT_CHARGING

Added in API level 1

Constant Value: 4 (0x00000004)

public static final int BATTERY_STATUS_UNKNOWN

Added in API level 1

Constant Value: 1 (0x00000001)

public static final String EXTRA_HEALTH

Added in API level 5

Extra for ACTION_BATTERY_CHANGED: integer containing the current health constant.

Constant Value: "health"

public static final String EXTRA_ICON_SMALL

Added in API level 5

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

Constant Value: "icon-small"

public static final String EXTRA_LEVEL

Added in API level 5

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

Constant Value: "level"

public static final String EXTRA_PLUGGED

Added in API level 5

Extra for 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"

public static final String EXTRA_PRESENT

Added in API level 5

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

Constant Value: "present"

public static final String EXTRA_SCALE

Added in API level 5

Extra for ACTION_BATTERY_CHANGED: integer containing the maximum battery level.

Constant Value: "scale"

public static final String EXTRA_STATUS

Added in API level 5

Extra for ACTION_BATTERY_CHANGED: integer containing the current status constant.

Constant Value: "status"

public static final String EXTRA_TECHNOLOGY

Added in API level 5

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

Constant Value: "technology"

public static final String EXTRA_TEMPERATURE

Added in API level 5

Extra for ACTION_BATTERY_CHANGED: integer containing the current battery temperature.

Constant Value: "temperature"

public static final String EXTRA_VOLTAGE

Added in API level 5

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

Constant Value: "voltage"

Public Methods

public int getIntProperty (int id)

Added in API level 21

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

Parameters
id int: identifier of the requested property
Returns
int the property value, or Integer.MIN_VALUE if not supported.

public long getLongProperty (int id)

Added in API level 21

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.

public boolean isCharging ()

Added in API level 23

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