Skip to content

【Android 11】查看与修改默认音量和最大音量

在 Android 系统中,音量设置和修改涉及多个方面,包括音量类型、系统设置、应用代码,以及用户交互方式

默认音量

默认音量在源码中由DEFAULT_STREAM_VOLUME定义 frameworks/base/media/java/android/media/AudioSystem.java

java
    /** @hide */
    public static int[] DEFAULT_STREAM_VOLUME = new int[] {
        4,  // STREAM_VOICE_CALL 电话通话音量的默认值
        7,  // STREAM_SYSTEM 系统音量(如按键音和提示音)的默认值。
        5,  // STREAM_RING 电话铃声音量的默认值。
        5, // STREAM_MUSIC 媒体音量(如音乐、视频)的默认值。
        6,  // STREAM_ALARM 闹钟音量的默认值。
        5,  // STREAM_NOTIFICATION 通知音量的默认值。
        7,  // STREAM_BLUETOOTH_SCO 蓝牙 SCO(用于电话音频传输到蓝牙设备)的默认音量值。
        7,  // STREAM_SYSTEM_ENFORCED 强制系统音量的默认值(某些强制系统音效,如安全警告音)。
        5, // STREAM_DTMF 双音多频音(电话拨号键音)的默认值。
        5, // STREAM_TTS 文本转语音(Text-to-Speech)音量的默认值。
        5, // STREAM_ACCESSIBILITY 辅助功能音量的默认值。
        5, // STREAM_ASSISTANT 语音助手的默认音量。
    };

我们一般使用遥控器调整的音量是 STREAM_MUSIC

最大音量和最小音量

frameworks/base/services/core/java/com/android/server/audio/AudioService.java

java
   /** Maximum volume index values for audio streams */
    protected static int[] MAX_STREAM_VOLUME = new int[] {
        5,  // STREAM_VOICE_CALL
        7,  // STREAM_SYSTEM
        7,  // STREAM_RING
        15, // STREAM_MUSIC
        7,  // STREAM_ALARM
        7,  // STREAM_NOTIFICATION
        15, // STREAM_BLUETOOTH_SCO
        7,  // STREAM_SYSTEM_ENFORCED
        15, // STREAM_DTMF
        15, // STREAM_TTS
        15, // STREAM_ACCESSIBILITY
        15  // STREAM_ASSISTANT
    };

    /** Minimum volume index values for audio streams */
    protected static int[] MIN_STREAM_VOLUME = new int[] {
        1,  // STREAM_VOICE_CALL
        0,  // STREAM_SYSTEM
        0,  // STREAM_RING
        0,  // STREAM_MUSIC
        1,  // STREAM_ALARM
        0,  // STREAM_NOTIFICATION
        0,  // STREAM_BLUETOOTH_SCO
        0,  // STREAM_SYSTEM_ENFORCED
        0,  // STREAM_DTMF
        0,  // STREAM_TTS
        1,  // STREAM_ACCESSIBILITY
        0   // STREAM_ASSISTANT
    };

查看与修改默认音量和最大音量

查看

java
adb shell getprop ro.config.media_vol_default
adb shell getprop ro.config.media_vol_steps

修改

  1. build/make/tools/buildinfo.sh
java
echo "ro.config.media_vol_default=10"
echo "ro.config.media_vol_steps=20"

注意,我在改这里的时候发现我的改动没用,grep搜了一下发现在其他地方的mk中有修改到这个值

java
$ grep -rn "ro.config.media_vol_default" device/
device/amlogic/common/products/mbox/product_mbox.mk:156:    ro.config.media_vol_default=13

由于mk在buildinfo.sh后编译,因此会覆盖掉你已经写好的值,记得grep检查一下

上次更新于: