BatteryProperty.java revision e35872da97ac6bd07d2d9ac5af8a7c18ad290718
1/* Copyright 2013, The Android Open Source Project 2 * 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14*/ 15 16package android.os; 17 18import android.os.Parcel; 19import android.os.Parcelable; 20 21/** 22 * Battery properties that may be queried using 23 * {@link BatteryManager#getProperty 24 * BatteryManager.getProperty()} 25 */ 26public class BatteryProperty implements Parcelable { 27 /* 28 * Battery property identifiers. These must match the values in 29 * frameworks/native/include/batteryservice/BatteryService.h 30 */ 31 /** Battery capacity in microampere-hours, as an integer. */ 32 public static final int CHARGE_COUNTER = 1; 33 34 /** 35 * Instantaneous battery current in microamperes, as an integer. Positive 36 * values indicate net current entering the battery from a charge source, 37 * negative values indicate net current discharging from the battery. 38 */ 39 public static final int CURRENT_NOW = 2; 40 41 /** 42 * Average battery current in microamperes, as an integer. Positive 43 * values indicate net current entering the battery from a charge source, 44 * negative values indicate net current discharging from the battery. 45 * The time period over which the average is computed may depend on the 46 * fuel gauge hardware and its configuration. 47 */ 48 public static final int CURRENT_AVERAGE = 3; 49 50 /** 51 * Remaining battery capacity as an integer percentage of total capacity 52 * (with no fractional part). 53 */ 54 public static final int CAPACITY = 4; 55 56 private int mValueInt; 57 58 /** 59 * @hide 60 */ 61 public BatteryProperty(int value) { 62 mValueInt = value; 63 } 64 65 /** 66 * @hide 67 */ 68 public BatteryProperty() { 69 mValueInt = Integer.MIN_VALUE; 70 } 71 72 /** 73 * Return the value of a property of integer type previously queried 74 * via {@link BatteryManager#getProperty 75 * BatteryManager.getProperty()}. If the platform does 76 * not provide the property queried, this value will be 77 * Integer.MIN_VALUE. 78 * 79 * @return The queried property value, or Integer.MIN_VALUE if not supported. 80 */ 81 public int getInt() { 82 return mValueInt; 83 } 84 85 /* 86 * Parcel read/write code must be kept in sync with 87 * frameworks/native/services/batteryservice/BatteryProperty.cpp 88 */ 89 90 private BatteryProperty(Parcel p) { 91 readFromParcel(p); 92 } 93 94 public void readFromParcel(Parcel p) { 95 mValueInt = p.readInt(); 96 } 97 98 public void writeToParcel(Parcel p, int flags) { 99 p.writeInt(mValueInt); 100 } 101 102 public static final Parcelable.Creator<BatteryProperty> CREATOR 103 = new Parcelable.Creator<BatteryProperty>() { 104 public BatteryProperty createFromParcel(Parcel p) { 105 return new BatteryProperty(p); 106 } 107 108 public BatteryProperty[] newArray(int size) { 109 return new BatteryProperty[size]; 110 } 111 }; 112 113 public int describeContents() { 114 return 0; 115 } 116} 117