安卓系统如何开启和关闭插入耳机时弹出的保护听力对话框

Android系统在4.2及以后的版本里面增加了耳机音量保护功能,当插入耳机且音量增大到一定级别时,会弹出“音量过大会伤害听力”的对话框,如果不想在增加音量时弹出此对话框,可以在代码里面做如下修改:

1. 修改~/framework/base/core/res/res/values/config.xml中config_safe_media_volume_enabled的值为false;

2. 调用AudioService.disableSafeMediaVolume()关闭对话框,调用setSafeMediaVolumeEnabled()打开对话框;

3. 直接在AudioService.java源码里面将mSafeMediaVolumeState设置为以下值;

SAFE_MEDIA_VOLUME_DISABLED关闭对话框

SAFE_MEDIA_VOLUME_ACTIVE打开对话框

4. 直接修改checkSafeMediaVolume()这个函数,改为如下:

private boolean checkSafeMediaVolume(int streamType, int index, int device) {
        synchronized (mSafeMediaVolumeState) {
            if ((mSafeMediaVolumeState == SAFE_MEDIA_VOLUME_ACTIVE) &&
                    (mStreamVolumeAlias[streamType] == AudioSystem.STREAM_MUSIC) &&
                    ((device & mSafeMediaVolumeDevices) != 0) &&
                    (index > mSafeMediaVolumeIndex)) {
                mVolumePanel.postDisplaySafeVolumeWarning();
                return false;
            }
            return true;
        }
    }

改为

private boolean checkSafeMediaVolume(int streamType, int index, int device) {
        synchronized (mSafeMediaVolumeState) {
            if ((mSafeMediaVolumeState == SAFE_MEDIA_VOLUME_ACTIVE) &&
                    (mStreamVolumeAlias[streamType] == AudioSystem.STREAM_MUSIC) &&
                    ((device & mSafeMediaVolumeDevices) != 0) &&
                    (index > mSafeMediaVolumeIndex)) {
                //mVolumePanel.postDisplaySafeVolumeWarning();
                //return false;
                return true;
            }
            return true;
        }
    }


--------------------- 
作者:布列瑟农的秋天 
来源:CSDN 
原文:https://blog.csdn.net/wlwl0071986/article/details/50070451 
版权声明:本文为博主原创文章,转载请附上博文链接!

Guess you like

Origin blog.csdn.net/yangbin0513/article/details/85273368