0

У меня есть приложение, и мне нужно заблокировать мелодию звонка и звуки/вибрации уведомлений, а также воспроизвести пользовательский звук, когда телефон находится в состоянии входящего вызова.Слушайте звуки в моем приложении, даже если звонок находится в бесшумном режиме.

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

audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT) 

Это приглушить мелодию и notifcation звуки.

Однако, когда я пытаюсь играть мой собственный звук, когда телефон находится состояние входящего вызова, с помощью музыкального потока:

MediaPlayer mp= MediaPlayer.create(context, R.raw.my_ringtone); 
mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mp.setLooping(false); 
mp.start(); 

Это не работает на некоторых устройствах (один из них является LG G2).

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

Любая помощь будет оценена по достоинству.

Заранее благодарен!

+0

Что относительно audioManager.setStreamVolume? Разве это не работает? – Opiatefuchs

ответ

0

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

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() рингтона, чтобы остановить воспроизведение.

+0

Но строка "audioManager.setRingerMode (AudioManager.RINGER_MODE_NORMAL);" отменит тихий режим, так что в чем смысл? или я чего-то не хватает? – dor506

+0

эй вы попробовали ответ, который я разместил? принимайте его, если он работает для вас. –

 Смежные вопросы

  • Нет связанных вопросов^_^