在 Android 开发中,实现通话录音功能通常涉及到对系统通话的拦截和录音。由于通话录音涉及到用户隐私和安全性,Android 系统对此有严格的限制和要求。在 Android 10(API 级别 29)及以上版本中,直接访问通话录音功能变得更为复杂,因为 Google 引入了运行时权限和更严格的隐私政策。
方案一:使用系统内置功能
如果你的应用目标是 Android 10 以下版本,你可以使用 TelephonyManager
的 addProximityListener
方法来监听通话状态,并结合 AudioRecord
类来录制音频。例如:
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.content.Context;
public class CallRecorder {
private AudioRecord audioRecord;
private boolean isRecording = false;
private Thread recordingThread;
private static final int SAMPLE_RATE = 44100;
private static final int CHANNEL_CONFIG = AudioFormat.CHANNEL_IN_MONO;
private static final int AUDIO_FORMAT