Отменить беззвучный режим и/или громкость мультимедиа

Я хочу переопределить беззвучный режим и/или громкость мультимедиа, чтобы телефон транслировал громкий звук. Я знаю, что будильник может отключить беззвучный режим. Как вы делаете это через свое приложение?


person AF_Aggie    schedule 01.11.2010    source источник


Ответы (3)


Вы спрашиваете, может ли приложение «Будильник» переопределить беззвучный режим или код может переопределить беззвучный режим?

Кодовый ответ — да, вы можете изменить настройку беззвучного режима с помощью такого кода:

AudioManager audio = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
int currentVolume = audio.getStreamVolume(AudioManager.STREAM_RING);
int max = audio.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION);
audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
audio.setStreamVolume(AudioManager.STREAM_RING, max, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
person Tony G.    schedule 01.11.2010

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

Таким образом, другое решение заключалось в том, что вы можете воспроизвести фрагмент мелодии звонка, приведенный ниже.

int volume = audioManager.getStreamVolume(AudioManager.STREAM_ALARM);
if(volume==0)
volume = audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, volume,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
ringtone = RingtoneManager.getRingtone(getApplicationContext(), Uri.parse(ringTonePath));
if(ringtone!=null){
    ringtone.setStreamType(AudioManager.STREAM_ALARM);
    ringtone.play();
    isRinging = true;
}

isRinging установите как флаг, если вы хотите программно остановить воспроизведение, или вы можете проверить с помощью isPlaying() рингтона, чтобы остановить воспроизведение

пройдя через это, я не изменил текущий профиль и больше не кодировал для этого

person Pratik    schedule 17.03.2012

Prey — это приложение для отслеживания телефонных звонков с открытым исходным кодом, которое делает это как один из своих функций — если вы не получите лучшего ответа могли бы взглянуть на источник, чтобы увидеть, как они это сделали.

person Colin Pickard    schedule 01.11.2010