frameworks/base/services/core/java/com/android/server/notification/NotificationManagerService.java
首先排查这个类,但发现没有去关闭充电指示灯的操作和代码逻辑。
于是想着其他地方会不会有关闭充电指示灯的地方。
除了充电灯,闪灯,那就是通知灯了,果然,皇天不负有心人
frameworks/base/services/core/java/com/android/server/notification/NotificationManagerService.java
判断为开机默认正常使用灯光,
//*add, charging light stays on when power on or restart phone
private boolean isFirstOff = true;
//*/@GuardedBy("mNotificationLock")
void updateLightsLocked()
{
if (mNotificationLight == null) {
return;
}
// handle notification lights
NotificationRecord ledNotification = null;
while (ledNotification == null && !mLights.isEmpty()) {
final String owner = mLights.get(mLights.size() - 1);
ledNotification = mNotificationsByKey.get(owner);
if (ledNotification == null) {
Slog.wtfStack(TAG, "LED Notification does not exist: " + owner);
mLights.remove(owner);
}
}
// Don't flash while we are in a call or screen is on
if (ledNotification == null || isInCall() || mScreenOn) { //res:Notification Light turnOff mBatteryLight
mNotificationLight.turnOff();//当通知为空或亮屏时关掉的通知灯 == 充电灯
//*/add,charging light stays on when power on or restart phone
if (isFirstOff) {
isFirstOff = false;
BatteryService.updateNotificationLights(true);
}
BatteryService.updateNotificationLights(false);
//*/} else {
NotificationRecord.Light light = ledNotification.getLight();
if (light != null && mNotificationPulseEnabled) {
// pulse repeatedly
mNotificationLight.setFlashing(light.color, LogicalLight.LIGHT_FLASH_TIMED,
light.onMs, light.offMs);
}
}
}