前言
音量调节会有进度条显示,刻度变化,RingerMode变化等行为。AuidoManager定义flag来控制这些行为
/**
* Show a toast containing the current volume.
*
* @see #adjustStreamVolume(int, int, int)
* @see #adjustVolume(int, int)
* @see #setStreamVolume(int, int, int)
* @see #setRingerMode(int)
*/
public static final int FLAG_SHOW_UI = 1 << 0;
/**
* Whether to include ringer modes as possible options when changing volume.
* For example, if true and volume level is 0 and the volume is adjusted
* with {@link #ADJUST_LOWER}, then the ringer mode may switch the silent or
* vibrate mode.
* <p>
* By default this is on for the ring stream. If this flag is included,
* this behavior will be present regardless of the stream type being
* affected by the ringer mode.
*
* @see #adjustVolume(int, int)
* @see #adjustStreamVolume(int, int, int)
*/
public static final int FLAG_ALLOW_RINGER_MODES = 1 << 1;
/**
* Whether to play a sound when changing the volume.
* <p>
* If this is given to {@link #adjustVolume(int, int)} or
* {@link #adjustSuggestedStreamVolume(int, int, int)}, it may be ignored
* in some cases (for example, the decided stream type is not
* {@link AudioManager#STREAM_RING}, or the volume is being adjusted
* downward).
*
* @see #adjustStreamVolume(int, int, int)
* @see #adjustVolume(int, int)
* @see #setStreamVolume(int, int, int)
*/
public static final int FLAG_PLAY_SOUND = 1 << 2;
/**
* Removes any sounds/vibrate that may be in the queue, or are playing (related to
* changing volume).
*/
public static final int FLAG_REMOVE_SOUND_AND_VIBRATE = 1 << 3;
/**
* Whether to vibrate if going into the vibrate ringer mode.
*/
public static final int FLAG_VIBRATE = 1 << 4;
/**
* Indicates to VolumePanel that the volume slider should be disabled as user
* cannot change the stream volume
* @hide
*/
public static final int FLAG_FIXED_VOLUME = 1 << 5;
/**
* Indicates the volume set/adjust call is for Bluetooth absolute volume
* @hide
*/
public static final int FLAG_BLUETOOTH_ABS_VOLUME = 1 << 6;
/**
* Adjusting the volume was prevented due to silent mode, display a hint in the UI.
* @hide
*/
public static final int FLAG_SHOW_SILENT_HINT = 1 << 7;
/**
* Indicates the volume call is for Hdmi Cec system audio volume
* @hide
*/
public static final int FLAG_HDMI_SYSTEM_AUDIO_VOLUME = 1 << 8;
/**
* Indicates that this should only be handled if media is actively playing.
* @hide
*/
public static final int FLAG_ACTIVE_MEDIA_ONLY = 1 << 9;
/**
* Like FLAG_SHOW_UI, but only dialog warnings and confirmations, no sliders.
* @hide
*/
public static final int FLAG_SHOW_UI_WARNINGS = 1 << 10;
/**
* Adjusting the volume down from vibrated was prevented, display a hint in the UI.
* @hide
*/
public static final int FLAG_SHOW_VIBRATE_HINT = 1 << 11;
private static final String[] FLAG_NAMES = {
"FLAG_SHOW_UI",
"FLAG_ALLOW_RINGER_MODES",
"FLAG_PLAY_SOUND",
"FLAG_REMOVE_SOUND_AND_VIBRATE",
"FLAG_VIBRATE",
"FLAG_FIXED_VOLUME",
"FLAG_BLUETOOTH_ABS_VOLUME",
"FLAG_SHOW_SILENT_HINT",
"FLAG_HDMI_SYSTEM_AUDIO_VOLUME",
"FLAG_ACTIVE_MEDIA_ONLY",
"FLAG_SHOW_UI_WARNINGS",
"FLAG_SHOW_VIBRATE_HINT",
};