'Android pause and resume ringtone playback

In android, is there any way to pause ringtone playback, play audio and then resume ringtone playback.

Using PhoneStateListener Could stop ringtone using below code

TelephonyManager mgr = (TelephonyManager) getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
if(mgr.getCallState()==TelephonyManager.CALL_STATE_RINGING){
RingtoneManager.getRingtone(context, RingtoneManager.getActualDefaultRingtoneURI(context,RingtoneManager.TYPE_RINGTONE)).stop(); 
}

But could not gain audio focus to play audio, audio focus request fails for below code

AudioAttributes audioAttributes = new AudioAttributes.Builder()
           .setUsage(AudioAttributes.USAGE_ALARM)
           .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
           .build();
focusRequest = new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT)
           .setAudioAttributes(audioAttributes)
           .setOnAudioFocusChangeListener(this)
           .build();
if(audioManager.requestAudioFocus(focusRequest) == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
            System.out.println("Audio Focus Granted");
            mediaPlayer.start();
}else{
           System.out.println("Audio Focus not Granted");
}


Solution 1:[1]

What‘s the error message? What API Level are you coding for? Maybe you‘re not using the right API Level?

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 GabeRAMturn