Codice Android per Aumentare il Volume dei Media Programmativamente (AudioManager)
Usa AudioManager.adjustStreamVolume() con ADJUST_RAISE. Richiede il permesso MODIFY_AUDIO_SETTINGS (concesso a sistema/app con consenso utente tramite pannello volume).
Kotlin (Moderno)
val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
audioManager.adjustStreamVolume(
AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_RAISE,
AudioManager.FLAG_SHOW_UI // o FLAG_PLAY_SOUND
) Java (Legacy)
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.adjustStreamVolume(
AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_RAISE,
AudioManager.FLAG_SHOW_UI
); Tipi di Stream
STREAM_MUSIC— media, giochi, video.STREAM_RING— suonerie, notifiche.STREAM_ALARM— sveglie.STREAM_VOICE_CALL— volume in chiamata.STREAM_SYSTEM— suoni di sistema.STREAM_DTMF— toni di selezione.STREAM_ACCESSIBILITY— TalkBack.STREAM_BLUETOOTH_SCO— voce auricolare BT.
Flag
FLAG_SHOW_UI— mostra il cursore volume sistema toast.FLAG_PLAY_SOUND— suona il tono di variazione volume.FLAG_REMOVE_SOUND_AND_VIBRATE— regolazione silenziosa.FLAG_VIBRATE— feedback aptico.
Best Practice (API 28+)
Usa AudioManager.setStreamVolume() con indice assoluto (0–max) per controllo preciso. Query max tramite getStreamMaxVolume().
val maxVol = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVol, AudioManager.FLAG_SHOW_UI) Permessi
- Nessun permesso speciale necessario per
adjustStreamVolume(iniziato dall'utente). setStreamVolumerichiedeMODIFY_AUDIO_SETTINGS_NOTIFICATION_POLICYo azione utente.- Non dirottare i tasti volume—override
onKeyDown(KeyEvent.KEYCODE_VOLUME_UP)in Activity.
Testa su dispositivo—il routing audio dell'emulatore differisce.