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.
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 .
Verwenden Sie den Broadcast-Empfänger VOLUME_CHANGED_ACTION, und verwenden Sie AudioManager, um das aktuelle Volume zu erhalten.
%Vor%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.
Tags und Links android event-handling volume