修改系統默認音量需要改兩處地方:
1. frameworks\base\media\java\android\media\AudioManager.java
1 /** @hide Default volume index values for audio streams */ 2 public static final int[] DEFAULT_STREAM_VOLUME = new int[] { 3 4, // STREAM_VOICE_CALL 4 7, // STREAM_SYSTEM 5 5, // STREAM_RING 6 8,//11, // STREAM_MUSIC 7 6, // STREAM_ALARM 8 5, // STREAM_NOTIFICATION 9 7, // STREAM_BLUETOOTH_SCO 10 7, // STREAM_SYSTEM_ENFORCED 11 11, // STREAM_DTMF 12 11, // STREAM_TTS 13 4 // STREAM_INCALL_MUSIC 14 };
此處的音量值用來生成settings.db數據庫字段的值。settings.db數據庫在Android 5.x中的路徑為/data/data/com.android.providers.settings/database/目錄下。
2. frameworks\base\media\java\android\media\AudioService.java
1 /** @hide Maximum volume index values for audio streams */ 2 private static int[] MAX_STREAM_VOLUME = new int[] { 3 15, // STREAM_VOICE_CALL 4 7, // STREAM_SYSTEM 5 7, // STREAM_RING 6 15, // STREAM_MUSIC 7 7, // STREAM_ALARM 8 7, // STREAM_NOTIFICATION 9 15, // STREAM_BLUETOOTH_SCO 10 7, // STREAM_SYSTEM_ENFORCED 11 15, // STREAM_DTMF 12 15 // STREAM_TTS 13 }; 14 15 private static int[] DEFAULT_STREAM_VOLUME = new int[] { 16 15, // STREAM_VOICE_CALL 17 7, // STREAM_SYSTEM 18 5, // STREAM_RING 19 8,//11, // STREAM_MUSIC 20 6, // STREAM_ALARM 21 5, // STREAM_NOTIFICATION 22 7, // STREAM_BLUETOOTH_SCO 23 7, // STREAM_SYSTEM_ENFORCED 24 11, // STREAM_DTMF 25 11 // STREAM_TTS 26 };
MAX_STREAM_VOLUME 數組為系統最大音量值。
DEFAULT_STREAM_VOLUME 數組為系統默認音量值。