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