Se un utente preme il tasto del volume su o giù è possibile rilevarlo nel mio ricevitore di trasmissione? Ho bisogno del codice completo.Android BroadCastReceiver per tasto volume su e giù
Ecco il mio filtro Intento
IntentFilter filter = new IntentFilter();
filter.addAction("android.media.VOLUME_CHANGED_ACTION");
e il mio metodo è onReceive
public void onReceive(Context arg0, Intent intent) {
KeyEvent ke = (KeyEvent)intent.getExtras().get(Intent.EXTRA_KEY_EVENT);
if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP) {
System.out.println("I got volume up event");
}else if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
System.out.println("I got volume key down event");
}
}
Mi dà un KeyEvent nulla ... qualche idea?
grazie per la risposta, ma mi dà lo stesso valore di volume = 1 quando il telefono è in modalità silenziosa o vibrazione o il volume della suoneria è al primo passaggio. Come posso rilevare che il telefono è silenzioso o vibra o non ha il primo valore? –
è possibile utilizzare AudioManager per rilevare se si è in modalità vibrazione, silenzioso o normale: http://stackoverflow.com/questions/2048427/how-can-i-detect-whether-the-android-phone-in-silent -mode-programatically – Theus
In caso di modifica del volume al massimo, ho avviato l'app, ma quando il lettore musicale è in esecuzione sul dispositivo, in quel caso non voglio aprire la mia app oltre al cambio di volume. Qualsiasi aiuto –