Reputation: 2167
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
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
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
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