PowerMonitor 虽然测量结果最准确。但是需要拆机比较麻烦。我们还可以通过谷歌 BatteryManager 提供的接口直接读取电池电量计的统计结果来获得电流值。
电池电量计负责估计电池容量。其基本功能为监测电压,充电/放电电流和电池温度,并估计电池荷电状态(SOC)及电池的完全充电容量(FCC)。有两种典型的电量计:电压型电量计和电流型电量计,目前手机上使用的电量计主要是电流型电量计。
- 电压型电量计:简单讲就是检测当前电压,然后查询电压-电池容量对应表,获得电量估算
- 电流型电量计:也叫库仑计,原理是在电池的充电/放电路径上的连接一个检测电阻。ADC 量测在检测电阻上的电压,转换成电池正在充电或放电的电流值。实时计数器(RTC)则提供把该电流值对时间作积分,从而得知流过多少库伦。
Android 提供了 BMS 的接口,通过属性提供了电池电量计的统计结果
- BATTERY_PROPERTY_CHARGE_COUNTER 剩余电池容量,单位为微安时
- BATTERY_PROPERTY_CURRENT_NOW 瞬时电池电流,单位为微安
- BATTERY_PROPERTY_CURRENT_AVERAGE 平均电池电流,单位为微安
- BATTERY_PROPERTY_CAPACITY 剩余电池容量,显示为整数百分比
- BATTERY_PROPERTY_ENERGY_COUNTER 剩余能量,单位为纳瓦时