Я хочу изменить громкость звонка - PullRequest
1 голос
/ 11 мая 2011

Я использовал этот код для регулировки громкости, но он не работал

int volume=23;
audio.setStreamVolume(AudioManager.STREAM_RING,volume, AudioManager.FLAG_PLAY_SOUND|AudioManager.FLAG_ALLOW_RINGER_MODES);}

1 Ответ

9 голосов
/ 11 мая 2011

вы не должны просто устанавливать громкость на 23, вместо этого вы должны сначала вызвать getStreamMaxVolume (StreamType), чтобы получить максимально возможную громкость для StreamType, которая в данном случае является громкостью звонка.

Например, чтобы установить максимальную громкость звонка, вы делаете это!

audioManager.setStreamVolume(AudioManager.STREAM_RING, audioManager.getStreamMaxVolume(AudioManager.STREAM_RING), FLAG_ALLOW_RINGER_MODES|FLAG_PLAY_SOUND);

ОБНОВЛЕНИЕ

    int streamMaxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
    Toast.makeText(this, Integer.toString(streamMaxVolume), Toast.LENGTH_LONG).show(); //I got 7
    audioManager.setStreamVolume(AudioManager.STREAM_RING, streamMaxVolume, AudioManager.FLAG_ALLOW_RINGER_MODES|AudioManager.FLAG_PLAY_SOUND);

ки. теперь, когда я дома, я могу попробовать коды. здесь, как вы можете видеть, streamMaxVolume дает мне целое число 7. Если вы попытаетесь установить его на 23 слишком много. поэтому возможные значения, которые вы можете использовать в setStreamVolume в моем случае, равны

0, 1, 2, 3, 4, 5, 6, 7 Самый низкий <-----> Самый высокий

//set to lowest ->
audioManager.setStreamVolume(AudioManager.STREAM_RING, 0, AudioManager.FLAG_ALLOW_RINGER_MODES|AudioManager.FLAG_PLAY_SOUND);

//set to loudest ->
audioManager.setStreamVolume(AudioManager.STREAM_RING, 7, AudioManager.FLAG_ALLOW_RINGER_MODES|AudioManager.FLAG_PLAY_SOUND);
...