Jeśli użytkownik naciśnie klawisz zwiększania lub zmniejszania głośności, czy można go wykryć w moim odbiorniku? Potrzebuję pełnego kodu.Android BroadCastReceiver do zwiększania i zmniejszania głośności
Oto mój filtr Intent
IntentFilter filter = new IntentFilter();
filter.addAction("android.media.VOLUME_CHANGED_ACTION");
onReceive
i moja metoda jest
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");
}
}
Daje mi null keyEvent ... jakiś pomysł?
dzięki za odpowiedź, ale daje mi tę samą wartość głośności = 1, gdy telefon jest cichy lub wibruje lub na głośność dzwonka jest w pierwszym kroku. Jak mogę wykryć telefon jest cichy lub wibruje lub nie ma pierwszej wartości? –
możesz użyć menedżera AudioManager, aby wykryć, czy jesteś w trybie wibracji, cichy lub normalny: http://stackoverflow.com/questions/2048427/how-can-i-detect-whether-the-android-phone-in-silent -mode-programowo – Theus
Przy zmianie głośności w max i uruchomiłem aplikację, ale gdy odtwarzacz muzyki działa na urządzeniu, to w tym przypadku nie chcę otwierać mojej aplikacji na zmianę głośności. Any help –