/* Copyright 2013, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; import android.os.Parcel; import android.os.Parcelable; /** * Battery properties that may be queried using * {@link BatteryManager#getProperty * BatteryManager.getProperty()} */ 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; private int mValueInt; /** * @hide */ public BatteryProperty(int value) { mValueInt = value; } /** * @hide */ public BatteryProperty() { mValueInt = Integer.MIN_VALUE; } /** * 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 mValueInt; } /* * Parcel read/write code must be kept in sync with * frameworks/native/services/batteryservice/BatteryProperty.cpp */ private BatteryProperty(Parcel p) { readFromParcel(p); } public void readFromParcel(Parcel p) { mValueInt = p.readInt(); } public void writeToParcel(Parcel p, int flags) { p.writeInt(mValueInt); } public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { public BatteryProperty createFromParcel(Parcel p) { return new BatteryProperty(p); } public BatteryProperty[] newArray(int size) { return new BatteryProperty[size]; } }; public int describeContents() { return 0; } }