2016-02-01 19 views
12

In Android, devo ricevere una notifica quando viene modificata la modalità audio corrente .Android: Ricevi notifiche quando viene modificata la modalità corrente all'interno di AudioManager

È possibile ottenere questo valore tramite getMode() ma si sta eseguendo il polling.

Non voglio eseguire il polling ogni pochi secondi.

Quali sono le mie opzioni?

(Si prega di notare che non sto chiedendo ringerMode)

+0

hai provato ad ascoltare AudioManager.RINGER_MODE_CHANGED_ACTION? –

+0

"Si prega di notare che non sto chiedendo su RingerMode" –

risposta

3

È possibile utilizzare AudioFocus per i dispositivi che eseguono Android OS versione 2.2 e superiori, preassuming vostra applicazione è anche di riprodurre file audio.

È possibile effettuare la registrazione per le modifiche alla messa a fuoco audio e quindi ascoltare il metodo onAudioFocusChange(int focusChange). In questo modo riceverai una notifica delle modifiche alla modalità audio e di altre modifiche al focus audio. Spero che aiuti.

È anche possibile utilizzare PhoneStateListener per ascoltare le modifiche degli stati del telefono e le modalità audio corrispondenti.

1

http://developer.android.com/reference/android/media/AudioManager.html

interfaccia AudioManager.OnAudioFocusChangeListener

definizione di interfaccia per un callback da richiamare quando viene aggiornato il focus audio del sistema.

impostazione questo vi darà l'uso del metodo onAudioFocusChange. Ciò potrebbe rilevare i cambiamenti di modalità tra le altre cose.