SystemUi音量显示笔记

frameworks/base/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogController.java

按下音量+/-键时,会在这个类中接收到按键变化,两种方法同时存在并接收;

1IVolumeController.Stub

private final VC mVolumeController = new VC();
private final class VC
extends IVolumeController.Stub

mAudio.setVolumeController(mVolumeController);


注册AudioManager的回调,返回状态,当按键操作时,类种接收到状状,无论音量是否改变(最小、最大时按同方向音量是不变的),只要是按键就回调。操作显示UI和调整音量进度条。


2AudioManager.VOLUME_CHANGED_ACTION

final IntentFilter filter = new IntentFilter();
filter.addAction(AudioManager.VOLUME_CHANGED_ACTION);
注册BroadcastReceiver监听,当按键操作音量有实际变化时才会产生AudioManager.VOLUME_CHANGED_ACTION
两种操作方式都调用
private
final class C implements Callbacks 中的

onStateChangedonShowRequested回到frameworks/base/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java中,显示界面,调整界面上标识音量大小进度。
frameworks/base/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogMotion.java
只是对界面显示加了层管理,增加了一些界面效果。

你可能感兴趣的:(SystemUI)