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;
}
}