2011-08-20 17 views
13

C'è un modo per ascoltare le variazioni di volume con un servizio Android e reagire?Listener di modifiche al volume?

Btw: in che modo l'app Google Music consente all'utente di controllare il volume dei contenuti multimediali anche quando la musica viene riprodotta in background?

risposta

12

Partenza registerMediaButtonEventReceiver(ComponentName broadcastReceiver);

Definire un BroadcastReceiver che gestisce ACTION_MEDIA_BUTTON. Il destinatario intent include un singolo campo aggiuntivo, EXTRA_KEY_EVENT, contenente l'evento chiave che ha causato la trasmissione. È possibile utilizzare questo evento chiave per ottenere quale tasto è stato premuto.


EDIT:
Questo è solo un esempio di codice. errori di sintassi potrebbero essere lì.

// in onCreate of activity 
registerMediaButtonEventReceiver(mediaReceiver); 

// later somewhere in activity. 
MediaButton_Receiver mediaReceiver = new MediaButton_Receiver(); 

class MediaButton_Receiver implements BroadcastReceiver { 
    void onReceive(Intent intent) { 

      KeyEvent ke = (KeyEvent)intent.getExtra(Intent.EXTRA_KEY_EVENT); 
      if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) { 

      } 
      // Similarly other key codes ....... 
    } 
} 

Annullare la registrazione del ricevitore onPause() o onStop()

+0

Può fare un esempio di quello per soddisfare? – kevdliu

+0

Ho aggiunto il codice di esempio. Ma ci sono errori di sintassi in esso. Inoltre, è necessario controllare il tasto di azione in basso o la chiave. Per iniziare è buono, aggiungilo più tardi. – Ronnie

+0

Inoltre, non dimenticare di annullare la registrazione del ricevitore, altrimenti le altre applicazioni che utilizzano l'evento del pulsante multimediale potrebbero essere interessate. – Ronnie

Problemi correlati