#BatteryService电池服务及客制化
BatteryService电池服务用于管理电池状态。
主要处理以下事情:
1)更新电池状态信息:更新电池充电/未充电状态、更新电池电压、电池电量等状态信息。
2)当电池电量过低时,提示是否开启省电模式、更新充电指示灯状态。
3)当电池温度过高,执行关机动作,保护手机/平板。
本文分两部分讲解BatteryService主要内容和开发过程中需要注意的事项,代码参考Android 13平台
—)注册电池状态更新处理函数
二)客制化时注意事项
一)注册电池状态更新处理函数
BatteryService启动过程中,在onStart()函数会执行代码registerHealthCallback()函数注册电池状态更新处理函数(例如插/拔USB或者AC)。
private void registerHealthCallback() {
try {
mHealthServiceWrapper = HealthServiceWrapper.create(this::update);
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
} catch (NoSuchElementException ex) {
throw ex;
} finally {
traceEnd();
}
long beforeWait = SystemClock.uptimeMillis();
synchronized (mLock) {
while (mHealthInfo == null) {
try {
mLock.wait