Hören Sie Lautstärke ändert Ereignisse auf Android

8

Gibt es eine Möglichkeit, das Ereignis der Lautstärkeänderung auf Android zu hören, ohne nur die Lautstärketasten zu übernehmen?

Das einzige, was ich gefunden habe, das funktioniert, ist hier , aber es funktioniert nur, nachdem die Lautstärkeregelung verschwunden ist.

Nicht alle Geräte haben Lautstärketasten, und ich muss die Lautstärkeänderungen erfassen, sobald sie auftreten, und nicht nachdem der Lautstärke-Dialog beendet wurde.

    
android developer 03.07.2012, 20:47
quelle

4 Antworten

15

Besser, Sie können ein ContentObserver wie folgt registrieren:

%Vor%

Ihr ContentObserver könnte so aussehen:

%Vor%

Wenn fertig:

%Vor%

Aber Vorsicht: Manchmal scheinen sich die Benachrichtigungen zu verzögern, wenn schnell viele Tasten gedrückt werden.

    
Tad 25.05.2015 15:27
quelle
3

Okay, vorerst höre ich die Lautstärketasten mit onKeyDown (und überprüfe auf KEYCODE_VOLUME_DOWN, KEYCODE_VOLUME_MUTE, KEYCODE_VOLUME_UP) und benutze einen Handler, dem ich ein neues Runnable geschrieben habe, das den Lautstärkepegel überprüft.

auch, da einige Geräte einen Lautstärkedialog haben, habe ich einen Listener hinzugefügt, wenn es verschwunden ist, nach Dieser Link .

    
android developer 10.07.2012 09:44
quelle
1

Verwenden Sie den Broadcast-Empfänger VOLUME_CHANGED_ACTION, und verwenden Sie AudioManager, um das aktuelle Volume zu erhalten.

%Vor%     
Apirak Lunla 13.02.2014 19:25
quelle
0

Sie können verwenden:    registerMediaButtonEventReceiver (ComponentName eventReceiver) die eine Komponente registriert, die der einzige Empfänger von MEDIA_BUTTON Intents ist.

%Vor%

Was wir hier tun, ist einen BroadcastReceiver zu definieren, der sich mit ACTION_MEDIA_BUTTON beschäftigt. und verwenden Sie EXTRA_KEY_EVENT, das das Schlüsselereignis enthält, das verursacht hat, dass die Übertragung das erhält, was gedrückt wurde, und danach handelt.

    
Mouna Cheikhna 03.07.2012 21:57
quelle

Tags und Links