2011-08-20 17 views
13

Czy istnieje sposób, aby słuchać zmian głośności za pomocą usługi Android i reagować na to?Odbiornik zmiany wolumenu?

Przy okazji: w jaki sposób aplikacja Google Music pozwala użytkownikowi kontrolować głośność multimediów, nawet gdy muzyka jest odtwarzana w tle?

Odpowiedz

12

Wyjazd registerMediaButtonEventReceiver(ComponentName broadcastReceiver);

Definiowanie BroadcastReceiver który obsługuje ACTION_MEDIA_BUTTON. Otrzymane intent zawiera jedno dodatkowe pole, EXTRA_KEY_EVENT, zawierające kluczowe zdarzenie, które spowodowało emisję. Możesz użyć tego zdarzenia kluczowego, aby uzyskać klucz, który został naciśnięty.


EDYCJA:
To tylko przykładowy kod. błędy składniowe mogą tam być.

// 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 ....... 
    } 
} 

wyrejestrowania odbiornika onPause() lub onStop()

+0

Czy możesz podać przykład, że proszę? – kevdliu

+0

Dodałem przykładowy kod. Ale są w nim błędy składniowe. Należy również sprawdzić klawisz działania w dół lub klawisz. Na początek to dobrze, dodaj to później. – Ronnie

+0

Nie zapomnij też wyrejestrować odbiornika, ponieważ może to wpłynąć na inne aplikacje korzystające ze zdarzenia przycisku multimediów. – Ronnie