1.简述
在12.0定制化开发中,遇到了在电池电量为0时,延时关机的问题,下面就来分析这个问题所产生的原因,然后解决这个问题
2.电池电量为0延迟关机的核心代码
/frameworks/base/services/core/java/com/android/server/BatteryService.java
3.电池电量为0延迟关机的功能分析和实现
3.1分析问题
在12.0中 电池电量管理都是由BatteryService.java来管理的,电池电量显示更新电量的变化都是在这里处理的,当底层驱动检测到电池电量变化时,会上报事件然后更新电池状态
public final class BatteryService extends SystemService {public BatteryService(Context context) {super(context);mContext = context;mHandler = new Handler(true /*async*/);mLed = new Led(context, getLocalService(LightsManager.class));mBatteryStats = BatteryStatsService.getService();mActivityManagerInternal = LocalServices.getService(ActivityManagerInternal.class);mCriticalBatteryLevel = mContext.getResources().getInteger(com.android.internal.R.integer.config_c