30-Android之添加充电断开提示音
Android10 MTK_6739
拔出充电器, 需要添加提示音
frameworks/base/services/core/java/com/android/server/power/Notifier.java
private static final int MSG_WIRED_CHARGING_STARTED = 6;
private static final int MSG_WIRED_CHARGING_STOPED = 7;
public void onWiredChargingStoped(@UserIdInt int userId) {
mSuspendBlocker.acquire();
Message msg = mHandler.obtainMessage(MSG_WIRED_CHARGING_STOPED);
msg.setAsynchronous(true);
msg.arg1 = userId;
mHandler.sendMessage(msg);
}
private void showWiredChargingStoped(@UserIdInt int userId) {
playChargingStartedFeedback(userId);
mSuspendBlocker.release();
}
private final class NotifierHandler extends Handler {
public NotifierHandler(Looper looper) {
super(looper, null, true /*async*/);
}
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
... //
case MSG_WIRED_CHARGING_STARTED:
showWiredChargingStarted(msg.arg1);
break;
case MSG_WIRED_CHARGING_STOPED:
showWiredChargingStoped(msg.arg1);
break;
}
}
}
frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
private void updateIsPoweredLocked(int dirty) {
.... //
// only play charging sounds if boot is completed so charging sounds don't play
// with potential notification sounds
if (mBootCompleted) {
if (mIsPowered && !BatteryManager.isPlugWired(oldPlugType)
&& BatteryManager.isPlugWired(mPlugType)) {
mNotifier.onWiredChargingStarted(mForegroundProfile);
} else if (dockedOnWirelessCharger) {
mNotifier.onWirelessChargingStarted(mBatteryLevel, mForegroundProfile);
}else if(!mIsPowered) {
mNotifier.onWiredChargingStoped(mForegroundProfile); // TODO
}
}
}
mBatterySaverStateMachine.setBatteryStatus(mIsPowered, mBatteryLevel, mBatteryLevelLow);
}
}