diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java index a095d11b8c4bf019ca4c529538cf5ca69b120350..9546cd3707c8141ae2e1be5edef04e8d01a1e4b1 100644 --- a/fmapp2/src/com/caf/fmradio/FMRadioService.java +++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java @@ -1441,6 +1441,7 @@ public class FMRadioService extends Service //any. Similarly once call is ended FM should be unmuted. AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); mCallStatus = state; + int granted = AudioManager.AUDIOFOCUS_REQUEST_FAILED, count = 0; if((TelephonyManager.CALL_STATE_OFFHOOK == state)|| (TelephonyManager.CALL_STATE_RINGING == state)) { @@ -1475,9 +1476,21 @@ public class FMRadioService extends Service if (isAntennaAvailable() && (!isFmOn()) && mServiceInUse) { Log.d(LOGTAG, "Resuming after call:"); + do { + granted = audioManager.requestAudioFocus(mAudioFocusListener, + AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT); + ++count; + try { + Thread.sleep(100); + } catch (Exception ex) { + Log.d( LOGTAG, "InterruptedException"); + } + } while(granted != AudioManager.AUDIOFOCUS_REQUEST_GRANTED && count != 3); + if(true != fmOn()) { return; } + mResumeAfterCall = false; if(mCallbacks != null) { try {