VolumeUI音量调节对话框

本文详细介绍了Android中VolumeUI的工作流程,从VolumeDialogComponent的初始化,到VolumeDialogControllerImpl的设置,再到VolumeDialogImpl如何创建和显示音量对话框。当按下音量键时,系统会显示音量调节弹窗。
摘要由CSDN通过智能技术生成

base\packages\SystemUI\src\com\android\systemui\volume\VolumeUI.java

初始化VolumeDialogComponent对象,start()作为VolumeUI的入口

public void start() {
        boolean enableVolumeUi = mContext.getResources().getBoolean(R.bool.enable_volume_ui);
        boolean enableSafetyWarning =
            mContext.getResources().getBoolean(R.bool.enable_safety_warning);
        mEnabled = enableVolumeUi || enableSafetyWarning;
        if (!mEnabled) return;

        mVolumeComponent.setEnableDialogs(enableVolumeUi, enableSafetyWarning);
        setDefaultVolumeController();
    }

注册默认音量控制器

private void setDefaultVolumeController() {
        DndTile.setVisible(mContext, true);
        if (LOGD) Log.d(TAG, "Registering default volume controller");
        mVolumeComponent.register();
    }

执行VolumeDialogComponent对象的setEnableDialogs方法,其实是执行VolumeDialogControllerImpl对象的setEnableDialogs方法

VolumeDialogControllerImpl mController

base\packages\SystemUI\src\com\android\systemui\volume\VolumeDialogComponent.java

base\packages\SystemUI\src\com\android\systemui\volume\VolumeDialogControllerImpl.java

void setEnableDialogs(boolean volumeUi, boolean safetyWarning) {
        mController.setEnableDialogs(volumeUi, safetyWarning);
    }

public void setEnableDialogs(boolean volumeUi, boolean safetyWarning) {
      mShowVolumeDialog = volumeUi;
      mShowSafetyWarning = safetyWarning;
    }

VolumeDialogComponent 对象创建完成后,就会调用它的register()方法启动 VolumeUI 功能

public void register() {
        mController.register();
        DndTile.setCombinedIcon(mContext, true);
    }

public void register() {
        setVolumeController();
        setVolumePolicy(mVolumePolicy);
        showDndTile(mShowDndTile);
        try {
            mMediaSessions.init();
        } catch (SecurityException e) {
            Log.w(TAG, "No access to media sessions", e);
        }
    }

在VolumeDialogComponent类中的构造函数里

Dependency.get(Ex
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值