2014-04-02 8 views
9

In Android 4.0+ è disponibile un'opzione Impostazioni-> Accessibilità-> Disattiva tutti i suoni. Se controllo questa opzione, qualsiasi applicazione in esecuzione sul dispositivo Android non produrrà alcun suono. La mia applicazione deve emettere un suono di allarme, quindi se qualcuno ha controllato quell'opzione, l'app non emette alcun suono. Quindi, devo annullare automaticamente l'opzione ogni volta che l'utente avvia l'applicazione. Attraverso il codice, come posso farlo?Come attivare/disattivare tutti i suoni dalle impostazioni di accessibilità programmaticamente in Android?

Sarà utile se qualcuno può condividere un pezzo di codice. Ho provato AudioManager, ma funziona solo se l'audio mobile è abilitato.

amanger.setRingerMode(AudioManager.RINGER_MODE_NORMAL); 

amanger.setStreamMute(AudioManager.STREAM_MUSIC, false); 

amanger.setStreamVolume(AudioManager.STREAM_MUSIC, 
    (int)(amanger.getStreamMaxVolume(AudioManager.STREAM_MUSIC)*(75.0/100.0)), 0); 
+0

Non c'è l'opzione "Impostazioni-> Accessibilità-> svolta di tutti i suoni" in azione Android. Questa è una personalizzazione del fornitore e probabilmente non c'è modo di aggirarla. Inoltre, se l'utente ha specificato "disattivare i suoni" per motivi di accessibilità, è necessario rispettare le loro preferenze e trovare un altro modo per avvisarli senza utilizzare il suono. – alanv

+0

Posso comprare quel consiglio. Grazie. – akash89

+0

Hey @alanv, ti consiglierei di postarlo come risposta. Anche se in realtà non risolve la domanda originale dell'OP, è la risposta corretta. – Jordan

risposta

2

È possibile utilizzare seguente funzione per disattivare il volume del sistema

public static void disableSound(Context context) 
{ 
    AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 
    audioManager.setStreamVolume(AudioManager.STREAM_SYSTEM, 0, 0); 
} 

Se si desidera attivare di nuovo, basta cambiare i parametri

audioManager.setStreamVolume(AudioManager.STREAM_SYSTEM, 10, 0); 

intervalli di volume 0-10

+0

"AudioManager.STREAM_SYSTEM" potrebbe aiutarti –

+0

Siamo spiacenti. Sento che non hai capito bene la mia domanda. – akash89

Problemi correlati