2011-08-20 22 views
13

¿Hay alguna manera de escuchar los cambios de volumen con un servicio de Android y reaccionar a eso?¿Escucha de cambio de volumen?

Por cierto: ¿Cómo la aplicación de música de Google le permite al usuario controlar el volumen de medios incluso cuando la música se reproduce en segundo plano?

Respuesta

12

Salida registerMediaButtonEventReceiver(ComponentName broadcastReceiver);

definir un BroadcastReceiver que maneja ACTION_MEDIA_BUTTON. El intent recibido incluye un único campo adicional, EXTRA_KEY_EVENT, que contiene el evento clave que provocó la transmisión. Puede usar este evento clave para obtener la tecla presionada.


EDIT:
Esto es sólo un ejemplo de código. los errores de sintaxis pueden estar ahí.

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

Eliminar el registro en el receptor o onPause()onStop()

+0

¿Puede dar un ejemplo de eso por favor? – kevdliu

+0

He agregado el código de muestra. Pero hay errores de sintaxis en él. También debe marcar la tecla de acción hacia abajo o hacia arriba. Para empezar, esto es bueno, agrégalo más tarde. – Ronnie

+0

Además, no se olvide de anular el registro del receptor, de lo contrario, otras aplicaciones que utilicen el botón del botón multimedia pueden verse afectadas. – Ronnie

Cuestiones relacionadas