Я видел несколько ответов на подобные вопросы, в основном рассматривая ContentObserver как решение. Где-то в том же духе:
Код: Выделить всё
getApplicationContext().getContentResolver().registerContentObserver(android.provider.Settings.System.CONTENT_URI, true, new ContentObserver(){...} );
Но Content Observer, зарегистрированный для CONTENT_URI, также отслеживает множество других изменений. Тем не менее, мы можем определить, было ли это изменение громкости, проверив разницу между предыдущей громкостью и текущей громкостью, что также кажется дорогостоящим, когда нам требуется операция для получения текущей громкости и переменная для хранения предыдущей громкости, чего я хочу избежать.
Итак, есть ли способ прослушивать только изменение громкости звука?
Подробнее здесь:
https://stackoverflow.com/questions/625 ... anges-only