Merge "BatteryManager: battery property query API update" into lmp-preview-dev

This commit is contained in:
Todd Poynor
2014-06-06 23:16:16 +00:00
committed by Android (Google) Code Review
3 changed files with 92 additions and 81 deletions

View File

@@ -20523,7 +20523,8 @@ package android.os {
public class BatteryManager {
ctor public BatteryManager();
method public android.os.BatteryProperty getProperty(int) throws android.os.RemoteException;
method public int getIntProperty(int);
method public long getLongProperty(int);
field public static final int BATTERY_HEALTH_COLD = 7; // 0x7
field public static final int BATTERY_HEALTH_DEAD = 4; // 0x4
field public static final int BATTERY_HEALTH_GOOD = 2; // 0x2
@@ -20534,6 +20535,11 @@ package android.os {
field public static final int BATTERY_PLUGGED_AC = 1; // 0x1
field public static final int BATTERY_PLUGGED_USB = 2; // 0x2
field public static final int BATTERY_PLUGGED_WIRELESS = 4; // 0x4
field public static final int BATTERY_PROPERTY_CAPACITY = 4; // 0x4
field public static final int BATTERY_PROPERTY_CHARGE_COUNTER = 1; // 0x1
field public static final int BATTERY_PROPERTY_CURRENT_AVERAGE = 3; // 0x3
field public static final int BATTERY_PROPERTY_CURRENT_NOW = 2; // 0x2
field public static final int BATTERY_PROPERTY_ENERGY_COUNTER = 5; // 0x5
field public static final int BATTERY_STATUS_CHARGING = 2; // 0x2
field public static final int BATTERY_STATUS_DISCHARGING = 3; // 0x3
field public static final int BATTERY_STATUS_FULL = 5; // 0x5
@@ -20551,20 +20557,6 @@ package android.os {
field public static final java.lang.String EXTRA_VOLTAGE = "voltage";
}
public class BatteryProperty implements android.os.Parcelable {
method public int describeContents();
method public int getInt();
method public long getLong();
method public void readFromParcel(android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
field public static final int CAPACITY = 4; // 0x4
field public static final int CHARGE_COUNTER = 1; // 0x1
field public static final android.os.Parcelable.Creator CREATOR;
field public static final int CURRENT_AVERAGE = 3; // 0x3
field public static final int CURRENT_NOW = 2; // 0x2
field public static final int ENERGY_COUNTER = 5; // 0x5
}
public class Binder implements android.os.IBinder {
ctor public Binder();
method public void attachInterface(android.os.IInterface, java.lang.String);

View File

@@ -128,29 +128,97 @@ public class BatteryManager {
public static final int BATTERY_PLUGGED_ANY =
BATTERY_PLUGGED_AC | BATTERY_PLUGGED_USB | BATTERY_PLUGGED_WIRELESS;
/*
* Battery property identifiers. These must match the values in
* frameworks/native/include/batteryservice/BatteryService.h
*/
/** Battery capacity in microampere-hours, as an integer. */
public static final int BATTERY_PROPERTY_CHARGE_COUNTER = 1;
/**
* 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.
*/
public static final int BATTERY_PROPERTY_CURRENT_NOW = 2;
/**
* 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.
*/
public static final int BATTERY_PROPERTY_CURRENT_AVERAGE = 3;
/**
* Remaining battery capacity as an integer percentage of total capacity
* (with no fractional part).
*/
public static final int BATTERY_PROPERTY_CAPACITY = 4;
/**
* Battery remaining energy in nanowatt-hours, as a long integer.
*/
public static final int BATTERY_PROPERTY_ENERGY_COUNTER = 5;
private IBatteryPropertiesRegistrar mBatteryPropertiesRegistrar;
/**
* Return the requested battery property.
* Query a battery property from the batteryproperties service.
*
* @param id identifier from {@link BatteryProperty} of the requested property
* @return a {@link BatteryProperty} object that returns the property value, or null on error
* Returns the requested value, or Long.MIN_VALUE if property not
* supported on this system or on other error.
*/
public BatteryProperty getProperty(int id) throws RemoteException {
private long queryProperty(int id) {
long ret;
if (mBatteryPropertiesRegistrar == null) {
IBinder b = ServiceManager.getService("batteryproperties");
mBatteryPropertiesRegistrar =
IBatteryPropertiesRegistrar.Stub.asInterface(b);
if (mBatteryPropertiesRegistrar == null)
return null;
return Long.MIN_VALUE;
}
BatteryProperty prop = new BatteryProperty();
if ((mBatteryPropertiesRegistrar.getProperty(id, prop) == 0) &&
(prop.getLong() != Long.MIN_VALUE))
return prop;
else
return null;
try {
BatteryProperty prop = new BatteryProperty();
if (mBatteryPropertiesRegistrar.getProperty(id, prop) == 0)
ret = prop.getLong();
else
ret = Long.MIN_VALUE;
} catch (RemoteException e) {
ret = Long.MIN_VALUE;
}
return ret;
}
/**
* 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.
*
* @param id identifier of the requested property
*
* @return the property value, or Integer.MIN_VALUE if not supported.
*/
public int getIntProperty(int id) {
return (int)queryProperty(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.
*
* @param id identifier of the requested property
*
* @return the property value, or Long.MIN_VALUE if not supported.
*/
public long getLongProperty(int id) {
return queryProperty(id);
}
}

View File

@@ -20,44 +20,13 @@ import android.os.Parcelable;
/**
* Battery properties that may be queried using
* {@link BatteryManager#getProperty
* BatteryManager.getProperty()}
*/
/**
* @hide
*/
public class BatteryProperty implements Parcelable {
/*
* Battery property identifiers. These must match the values in
* frameworks/native/include/batteryservice/BatteryService.h
*/
/** Battery capacity in microampere-hours, as an integer. */
public static final int CHARGE_COUNTER = 1;
/**
* 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.
*/
public static final int CURRENT_NOW = 2;
/**
* 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.
*/
public static final int CURRENT_AVERAGE = 3;
/**
* Remaining battery capacity as an integer percentage of total capacity
* (with no fractional part).
*/
public static final int CAPACITY = 4;
/**
* Battery remaining energy in nanowatt-hours, as a long integer.
*/
public static final int ENERGY_COUNTER = 5;
private long mValueLong;
/**
@@ -68,30 +37,12 @@ public class BatteryProperty implements Parcelable {
}
/**
* Return the value of a property of integer type previously queried
* via {@link BatteryManager#getProperty
* BatteryManager.getProperty()}. If the platform does
* not provide the property queried, this value will be
* Integer.MIN_VALUE.
*
* @return The queried property value, or Integer.MIN_VALUE if not supported.
*/
public int getInt() {
return (int)mValueLong;
}
/**
* Return the value of a property of long type previously queried
* via {@link BatteryManager#getProperty
* BatteryManager.getProperty()}. If the platform does
* not provide the property queried, this value will be
* Long.MIN_VALUE.
*
* @return The queried property value, or Long.MIN_VALUE if not supported.
* @hide
*/
public long getLong() {
return mValueLong;
}
/*
* Parcel read/write code must be kept in sync with
* frameworks/native/services/batteryservice/BatteryProperty.cpp