电池相关状态

2018-11-15  本文已影响0人  peter_RD_nj

电池状态发生改变的时候系统会发送ACTION_BATTERY_CHANGED广播,通过注册这个广播就可以获得电池的相关状态。

    frameworks/base/core/java/android/content/Intent.java
    /**
     * Broadcast Action:  This is a <em>sticky broadcast</em> containing the
     * charging state, level, and other information about the battery.
     * See {@link android.os.BatteryManager} for documentation on the
     * contents of the Intent.
     *
     * <p class="note">
     * You <em>cannot</em> receive this through components declared
     * in manifests, only by explicitly registering for it with
     * {@link Context#registerReceiver(BroadcastReceiver, IntentFilter)
     * Context.registerReceiver()}.  See {@link #ACTION_BATTERY_LOW},
     * {@link #ACTION_BATTERY_OKAY}, {@link #ACTION_POWER_CONNECTED},
     * and {@link #ACTION_POWER_DISCONNECTED} for distinct battery-related
     * broadcasts that are sent and can be received through manifest
     * receivers.
     *
     * <p class="note">This is a protected intent that can only be sent
     * by the system.
     */
    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
    public static final String ACTION_BATTERY_CHANGED = "android.intent.action.BATTERY_CHANGED";

在frameworks/base/core/java/android/os/BatteryManager.java中定义了很多字段,通过这些预定义字段可以获得电池相关的各种状态信息,主要的状态如下:

字段 用途
EXTRA_STATUS 获得电池状态
EXTRA_HEALTH 获得电池健康状态
EXTRA_LEVEL 获得电池电量
EXTRA_PLUGGED 获得充电方式
EXTRA_VOLTAGE 获得电池电压
EXTRA_TEMPERATURE 获得电池温度
字段 含义
BATTERY_STATUS_UNKNOWN 未知状态
BATTERY_STATUS_CHARGING 充电状态
BATTERY_STATUS_DISCHARGING 放电状态
BATTERY_STATUS_NOT_CHARGING 未充电状态
BATTERY_STATUS_FULL 满电量状态
字段 含义
BATTERY_HEALTH_UNKNOWN
BATTERY_HEALTH_GOOD
BATTERY_HEALTH_OVERHEAT
BATTERY_HEALTH_DEAD
BATTERY_HEALTH_OVER_VOLTAGE
BATTERY_HEALTH_UNSPECIFIED_FAILURE
BATTERY_HEALTH_COLD
字段 含义
BATTERY_PLUGGED_AC 充电器充电
BATTERY_PLUGGED_USB USB充电
BATTERY_PLUGGED_WIRELESS 无线充电
上一篇 下一篇

猜你喜欢

热点阅读