Srihari Karanth
Srihari Karanth

Reputation: 2167

Call recorder not working in android 10 (Q)

Call recorder is recording blank for the duration in Android 10 (Pixel 3A). It was working fine for all phones till Android 8 and in Android 9 most phones were recording only one side voice (however it was working fine in pixel 3A)

Is there any way to record calls in Android 10?

The below code doesn't seem to be working anymore.

    int audioSource = MediaRecorder.AudioSource.VOICE_CALL;
    mediaRecorder.setAudioSource(audioSource);
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
    mediaRecorder.setAudioEncodingBitRate(32);
    mediaRecorder.setAudioSamplingRate(44100);
    mediaRecorder.setOutputFile(MediaUri);
    mediaRecorder.prepare();
    mediaRecorder.start();

If SDK 28 or below is used call recording happens for the whole duration but without any voice. If SDK 29 is used call recording fails at the beginning saying check available audio from callback.

I hope its a bug in Google Android 10 and some patch will fix it.

Upvotes: 6

Views: 32295

Answers (3)

Prototype
Prototype

Reputation: 568

I am using Realme2pro device having version android 10 it is working for me by using Accessibility try this code

To implement Accessibility go through this link

public class Accessibility extends AccessibilityService {

Service mService = null;

@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
    Log.d("MyAccessibilityService", "Shrinidhi: onAccessibilityEvent");
}

@Override
public void onInterrupt() {

}


@Override
protected void onServiceConnected() {
    Log.d("MyAccessibilityService", "Shrinidhi: onServiceConnected");
}

@Override
public void onCreate() {
    this.mService = this;
    Log.d("MyAccessibilityService", "Shrinidhi: onCreate");
 }
}

and add AudioSource to recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);

 recorder = new MediaRecorder();
    recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);
    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    recorder.setOutputFile(file.getAbsolutePath());

Hope it work :)

Upvotes: 2

Srihari Karanth
Srihari Karanth

Reputation: 2167

It's possible using Accessibility Service.

Remote call recorder and BoldBeast both record perfectly both side voice in Android 10 (Pixel 3A) without having to root or being a system app. Both of them use Accessibility service.

Detailed info here in this link.

Upvotes: 5

MohanKumar
MohanKumar

Reputation: 1115

As per Google's new permission policy no other third party apps (Except system apps) can record calls from Android 9 Pie.

This change will not affect previous recordings or call recording in general.

Upvotes: 2

Related Questions