Используйте класс AudioManager . По сути код выглядит следующим образом:
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(streamType, volume, flags);
Проблема в том, что громкость устройства не обязательно отображается от 0 до 10, как у вас в слайдере. В моем эмуляторе это значение от 0 до 7. Так что вам нужно сделать getStreamMaxVolume(...)
, чтобы узнать, каков ваш максимальный уровень, а затем определить свою ценность как часть этого. Например, если ваш пользователь выбирает том 8 из 10, это эквивалентно 0,8 * 7 = 5,6, что вы должны округлить до 6 из 7.
«Поток» относится к таким вещам, как громкость звонка, громкость уведомлений, громкость музыки и т. Д. Если вы хотите изменить громкость звонка, вам нужно убедиться, что все ваши команды имеют AudioManager.STREAM_RING
в качестве streamType.