问题点描述:
还原出厂设置后,第一次启动安卓系统会自动降音量设成10,导致开机时音量不一致问题。
原因:安全音量逻辑将音量设置为10
安全音量配置和音量值
\frameworks\base\core\res\res\values\config.xml
<!-- Safe headphone volume index. When music stream volume is below this index
the SPL on headphone output is compliant to EN 60950 requirements for portable music
players. -->
<integer name="config_safe_media_volume_index">10</integer>
<!-- Whether safe headphone volume is enabled or not (country specific). -->
<bool name="config_safe_media_volume_enabled">true</bool>
安全音量逻辑:
frameworks\base\services\core\java\com\android\server\audio\AudioService.java
// mSafeMediaVolumeDevices lists the devices for which safe media volume is enforced,
private final int mSafeMediaVolumeDevices = AudioSystem.DEVICE_OUT_WIRED_HEADSET |
AudioSystem.DEVICE_OUT_WIRED_HEADPHONE |
AudioSystem.DEVICE_OUT_USB_HEADSET;
///////////////////////////////////////////////////////////////////////////
// Construction
///////////////////////////////////////////////////////////////////////////
/** @hide */
public AudioService(Context context) {
//...
// The default safe volume index read here will be replaced by the actual value when
// the mcc is read by onConfigureSafeVolume()
mSafeMediaVolumeIndex = mContext.getResources().getInteger(
com.android.internal.R.integer.config_safe_media_volume_index) * 10;
//...
}
public void onSystemReady

这篇博客探讨了安卓系统在还原出厂设置后,如何通过安全音量逻辑将音乐流音量默认设置为10,以符合安全标准。这个逻辑在`frameworksasecore
es
esvaluesconfig.xml`中配置,并在`AudioService.java`中实施。当`config_safe_media_volume_enabled`设为true时,系统会强制执行安全音量限制。在设备启动时,`onConfigureSafeVolume`方法会根据配置调整音量,确保用户在使用耳机等设备时不会因过高音量损伤听力。
最低0.47元/天 解锁文章
4953





