Как спрятать ползунок громкости?

Я разрабатываю приложение под Android, в котором мне нужно использовать кнопки громкости как элемент управления. Я успешно получаю значение громкости с помощью AudioManager внутри фрагмента, всё работает, но есть одна единственная проблема, решения которой я пока не нашел.

При нажатии на кнопки громкости на экране появляется системный ползунок громкости (совершенно ожидаемо). Он мешает, и я хотел бы каким-либо образом сделать его невидимым, или сделать так, чтобы конкретно в этом приложении он не вызывался.

Можно ли это сделать через код Java?


Ответы (1 шт):

Автор решения: Vadik

Чтобы перехватить нажатия на кнопки громкости, в активити переопределите метод onKeyDown и обработайте кейкоды KEYCODE_VOLUME_UP и KEYCODE_VOLUME_DOWN:

public class MainActivity extends AppCompatActivity {

    ...

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
            Toast.makeText(this, "Volume Up!", Toast.LENGTH_LONG).show();
            return true;
        }
        if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
            Toast.makeText(this, "Volume Down!", Toast.LENGTH_LONG).show();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

}
→ Ссылка