android BatteryManager电池管理

首先要说的是,电池管理不是电源管理。算然电源是由电池供给的,但是在逻辑管理中,怎么供电的,和怎么用电的,这两个是分开的。

java代码: 
frameworks/frameworks/base/services/java/com/android/server/Ba 
tteryService.java 
监听Uevent、读取sysfs里中的状态 。
JNI代码: 
frameworks/base/services/jni/com_android_server_BatteryService. 
cpp 
kernel driver代码 
drivers/power/xx_battery.c 

获得电池信息的两种方式(可以3种):

Android.content.BroadcastReceiver类
广播Intent.ACTION_BATTERY_CHANGED

Android.os.BatteryManager类


1.使用广播接收器:

   ●(1) 电池信息的取得,调用registerReceiver()方法。
         第1个参数,设置BroadcastReceiver实例
第2个参数,设置追加了Intent.ACTION_BATTERY_CHANGED处理的IntentFilter实例。

    ●(2) 在BroadcastReceiver的onReceive()事件,接收到的Intent.ACTION_BATTERY_CHANGED,包括下面的信息。
    “status”(int类型)…状态,定义值是BatteryManager.BATTERY_STATUS_XXX。
    “health”(int类型)…健康,定义值是BatteryManager.BATTERY_HEALTH_XXX。
    “present”(boolean类型)
    “level”(int类型)…电池剩余容量
    “scale”(int类型)…电池最大值。通常为100。
    “icon-small”(int类型)…图标ID。
    “plugged”(int类型)…连接的电源插座,定义值是BatteryManager.BATTERY_PLUGGED_XXX。
    “voltage”(int类型)…mV。
    “temperature”(int类型)…温度,0.1度单位。例如 表示197的时候,意思为19.7度。 
    “technology”(String类型)…电池类型,例如,Li-ion等等。

2.获取系统服务的方式:


Constants
intBATTERY_HEALTH_COLD 
intBATTERY_HEALTH_DEAD 
intBATTERY_HEALTH_GOOD 
intBATTERY_HEALTH_OVERHEAT 
intBATTERY_HEALTH_OVER_VOLTAGE 
intBATTERY_HEALTH_UNKNOWN 
intBATTERY_HEALTH_UNSPECIFIED_FAILURE 
intBATTERY_PLUGGED_ACPower source is an AC charger.
intBATTERY_PLUGGED_USBPower source is a USB port.
intBATTERY_PLUGGED_WIRELESSPower source is wireless.
intBATTERY_STATUS_CHARGING 
intBATTERY_STATUS_DISCHARGING 
intBATTERY_STATUS_FULL 
intBATTERY_STATUS_NOT_CHARGING 
intBATTERY_STATUS_UNKNOWN 
StringEXTRA_HEALTHExtra for ACTION_BATTERY_CHANGED: integer containing the current health constant.
StringEXTRA_ICON_SMALLExtra for ACTION_BATTERY_CHANGED: integer containing the resource ID of a small status bar icon indicating the current battery state.
StringEXTRA_LEVELExtra for ACTION_BATTERY_CHANGED: integer field containing the current battery level, from 0 to EXTRA_SCALE.
StringEXTRA_PLUGGEDExtra for 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.
StringEXTRA_PRESENTExtra for ACTION_BATTERY_CHANGED: boolean indicating whether a battery is present.
StringEXTRA_SCALEExtra for ACTION_BATTERY_CHANGED: integer containing the maximum battery level.
StringEXTRA_STATUSExtra for ACTION_BATTERY_CHANGED: integer containing the current status constant.
StringEXTRA_TECHNOLOGYExtra for ACTION_BATTERY_CHANGED: String describing the technology of the current battery.
StringEXTRA_TEMPERATUREExtra for ACTION_BATTERY_CHANGED: integer containing the current battery temperature.
StringEXTRA_VOLTAGEExtra for ACTION_BATTERY_CHANGED: integer containing the current battery voltage level.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值