BatteryManager类

/* * Copyright (C) 2008 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.BatteryProperty;import android.os.IBatteryPropertiesRegistrar;import android.os.RemoteException;import android.os.ServiceManager;/** * The BatteryManager class contains strings and constants used for values * in the {@link android.content.Intent#ACTION_BATTERY_CHANGED} Intent, and * provides a method for querying battery and charging properties. */public class BatteryManager {    /**     * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}:     * integer containing the current status constant.     */    public static final String EXTRA_STATUS = "status";    /**     * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}:     * integer containing the current health constant.     */    public static final String EXTRA_HEALTH = "health";    /**     * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}:     * boolean indicating whether a battery is present.     */    public static final String EXTRA_PRESENT = "present";    /**     * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}:     * integer field containing the current battery level, from 0 to     * {@link #EXTRA_SCALE}.     */    public static final String EXTRA_LEVEL = "level";    /**     * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}:     * integer containing the maximum battery level.     */    public static final String EXTRA_SCALE = "scale";    /**     * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}:     * integer containing the resource ID of a small status bar icon     * indicating the current battery state.     */    public static final String EXTRA_ICON_SMALL = "icon-small";    /**     * Extra for {@link android.content.Intent#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.     */    public static final String EXTRA_PLUGGED = "plugged";    /**     * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}:     * integer containing the current battery voltage level.     */    public static final String EXTRA_VOLTAGE = "voltage";    /**     * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}:     * integer containing the current battery temperature.     */    public static final String EXTRA_TEMPERATURE = "temperature";    /**     * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}:     * String describing the technology of the current battery.     */    public static final String EXTRA_TECHNOLOGY = "technology";    /**     * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}:     * Int value set to nonzero if an unsupported charger is attached     * to the device.     * {@hide}     */    public static final String EXTRA_INVALID_CHARGER = "invalid_charger";    /**     * {@hide}     */    public static final String ACTION_SHOW_BATTERY_PERCENTAGE = "intent.action.SHOW_BATTERY_PERCENTAGE";    // values for "status" field in the ACTION_BATTERY_CHANGED Intent    public static final int BATTERY_STATUS_UNKNOWN = 1;    public static final int BATTERY_STATUS_CHARGING = 2;    public static final int BATTERY_STATUS_DISCHARGING = 3;    public static final int BATTERY_STATUS_NOT_CHARGING = 4;    public static final int BATTERY_STATUS_FULL = 5;    // values for "health" field in the ACTION_BATTERY_CHANGED Intent    public static final int BATTERY_HEALTH_UNKNOWN = 1;    public static final int BATTERY_HEALTH_GOOD = 2;    public static final int BATTERY_HEALTH_OVERHEAT = 3;    public static final int BATTERY_HEALTH_DEAD = 4;    public static final int BATTERY_HEALTH_OVER_VOLTAGE = 5;    public static final int BATTERY_HEALTH_UNSPECIFIED_FAILURE = 6;    public static final int BATTERY_HEALTH_COLD = 7;    // values of the "plugged" field in the ACTION_BATTERY_CHANGED intent.    // These must be powers of 2.    /** Power source is an AC charger. */    public static final int BATTERY_PLUGGED_AC = 1;    /** Power source is a USB port. */    public static final int BATTERY_PLUGGED_USB = 2;    /** Power source is wireless. */    public static final int BATTERY_PLUGGED_WIRELESS = 4;    /** @hide */    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;    /**     * Query a battery property from the batteryproperties service.     *     * Returns the requested value, or Long.MIN_VALUE if property not     * supported on this system or on other error.     */    private long queryProperty(int id) {        long ret;        if (mBatteryPropertiesRegistrar == null) {            IBinder b = ServiceManager.getService("batteryproperties");            mBatteryPropertiesRegistrar =                IBatteryPropertiesRegistrar.Stub.asInterface(b);            if (mBatteryPropertiesRegistrar == null)                return Long.MIN_VALUE;        }        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);    }}

未完

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. Android平台上的Gphone 图像演示
  2. Android创建快捷方式(shortcut)
  3. android唤醒屏幕/保持屏幕唤醒
  4. Android(安卓)Q AppCompactor and LowMem
  5. android 下的webview 设置多点触控放大
  6. Android(安卓)SeekBar
  7. android 选择图片(从手机照相机或手机图
  8. android activity 设置为单点触摸
  9. Android(安卓)ListView滑动加载
  10. RN 打包流程