我正在制作自定义 AOSP 棉花糖图像,我想在默认情况下将默认音量级别设置得更高。
我在中文论坛发现在frameworks/base/media/java/android/media/AudioSystem.java下可以找到
/**
* M: modify the default stream volume @{
*/
public static int[] DEFAULT_STREAM_VOLUME = new int[] {
4, // STREAM_VOICE_CALL
15, // STREAM_SYSTEM
8, // STREAM_RING
8, // STREAM_MUSIC
8, // STREAM_ALARM
8, // STREAM_NOTIFICATION
7, // STREAM_BLUETOOTH_SCO
15, // STREAM_SYSTEM_ENFORCED
11, // STREAM_DTMF
11 // STREAM_TTS
};
/** @} */
在frameworks/base/services/core/java/com/android/server/audio/AudioService.java下是最小和最大音量值。
/** Maximum volume index values for audio streams */
/// M: Modify the max stream volume @{
private static int[] MAX_STREAM_VOLUME = new int[] {
7, // STREAM_VOICE_CALL
15, // STREAM_SYSTEM
15, // STREAM_RING
15, // STREAM_MUSIC
15, // STREAM_ALARM
15, // STREAM_NOTIFICATION
15, // STREAM_BLUETOOTH_SCO
15, // STREAM_SYSTEM_ENFORCED
15, // STREAM_DTMF
15 // STREAM_TTS
};
/** Minimum volume index values for audio streams */
private static int[] MIN_STREAM_VOLUME = new int[] {
1, // STREAM_VOICE_CALL
0, // STREAM_SYSTEM
0, // STREAM_RING
0, // STREAM_MUSIC
0, // STREAM_ALARM
0, // STREAM_NOTIFICATION
1, // STREAM_BLUETOOTH_SCO
0, // STREAM_SYSTEM_ENFORCED
0, // STREAM_DTMF
0 // STREAM_TTS
};
我已将 DEFAULT_STREAM_VOLUME 表中的 STREAM_MUSIC、STREAM_ALARM 和 STREAM_NOTIFICATION 从 8 更改为 13,但在构建和制作图像时似乎没有任何效果。
知道可能是什么问题或更改默认音量级别的正确位置吗?
刷机后有恢复出厂设置吗?
默认音量仅适用于首次启动。然后,音量级别将在下次启动时保持不变。
我不确定它是否与此处提到的 Android 版本相关,但在我看来(我不是 Android 专家),更改
DEFAULT_STREAM_VOLUME
并不有效,因为 AudioService
构造函数正在覆盖DEFAULT_STREAM_VOLUME
的值。
例如:
int defaultAlarmVolume = SystemProperties.getInt("ro.config.alarm_vol_default", -1);
if (defaultAlarmVolume != -1 &&
defaultAlarmVolume <= MAX_STREAM_VOLUME[AudioSystem.STREAM_ALARM]) {
AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_ALARM] = defaultAlarmVolume;
} else {
// Default is 6 out of 7 (default maximum), so scale accordingly.
AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_ALARM] =
6 * MAX_STREAM_VOLUME[AudioSystem.STREAM_ALARM] / 7;
}
我认为正确的方法是更改相关的
SystemProperties
,例如ro.config.alarm_vol_default
。