I tried it and use the following code for recording outgoing calls but it does not..
@Override
public void onReceive(Context context, Intent intent)
{
It seems that you cannot record a call from the API. One common workaround is to engage the speakerphone and record from the microphone - on many devices, the microphone will pick up the speaker adequately with this arrangement.
Another workaround is to do the recording on a telephony service somewhere and route calls through it.
This code is working for me to record outgoing phone calls,so please check it Here
This can be solved with API level 8+. Set your audio source for media recorder as phone uplink, downlink, or both.
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); //Voice downlink/ Uplink
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(AudioEncoder.AAC );
But beware of the law and regulations before doing this.
ACTION_ANSWER
is not a broadcast Intent
You cannot record call simply by media recorder. you have to also change the setting of audio manager and put the loud speaker on before starting recording and the audio source will remain same(mic).So try to edit audio manager's setting
AudioManager audiomanager = (AudioManager)context.getSystemService("audio");
int i = audiomanager.getRouting(2);
audiomanager.setMode(2);
audiomanager.setMicrophoneMute(false);
audiomanager.setSpeakerphoneOn(true);
int j = audiomanager.getStreamMaxVolume(0);
if(j < 0)
j = 1;
int k = j / 2 + 1;
audiomanager.setStreamVolume(0, k, 0);
audiomanager.setRouting(2, 11, 15);