
android 13 已全面禁用通过 mediarecorder(如 voice_recognition)实现可靠双向通话录音的能力,系统级限制导致多数设备仅能捕获单侧音频,本文解析根本原因并提供合规、可行的替代路径。
android 13 已全面禁用通过 mediarecorder(如 voice_recognition)实现可靠双向通话录音的能力,系统级限制导致多数设备仅能捕获单侧音频,本文解析根本原因并提供合规、可行的替代路径。
在 Android 10 及之后版本中,AudioSource.VOICE_RECOGNITION 曾被部分应用(如 Cube ACR)用于尝试捕获通话双方音频,其原理是复用系统语音识别通道——该通道理论上可混合上行(用户说话)与下行(对方声音)音频流。然而,这一行为从未被 Android 官方支持或保证。自 Android 12 起,Google 明确将通话录音列为受限场景;至 Android 13(API 33),系统进一步强化了音频路由隔离机制:VOICE_RECOGNITION 源在绝大多数 OEM 设备上仅返回本地麦克风输入(即用户单侧声音),而远端语音(对方讲话)被主动屏蔽或路由至受保护的私有音频轨道,无法被 MediaRecorder 或 AudioRecord 访问。
以下代码已不再具备跨设备可靠性:
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.HE_AAC);
recorder.setOutputFile("/sdcard/recording.m4a");
try {
recorder.prepare();
recorder.start(); // ⚠️ 在 Android 13 大部分设备上仅录到用户声
} catch (Exception e) {
Log.e("Recorder", "Failed to start", e);
}
? 补充说明:所谓 “voice recognition software” 并非 Android SDK 中的正式音频源类型,而是 Cube ACR 等应用对 VOICE_RECOGNITION 的营销化表述。它不对应任何隐藏 API,也不代表存在未公开的系统级录音权限。
✅ 真实可行的替代方案(适配 Android 12/13)
使用 AccessibilityService + 混音录制(有限兼容)
少数厂商(如三星、小米部分机型)允许辅助服务监听系统音频输出(需用户手动开启「无障碍→音频反馈」等隐式开关),再结合 AudioRecord 录制 AudioSource.MIC,但稳定性差、需深度定制且违反 Google Play 政策(可能被拒)。-
基于 VoIP 应用的内建录音(推荐)
若您的应用控制通话链路(如集成 WebRTC、SIP 或使用 Firebase Realtime Database 同步语音),可在 SDK 层直接获取原始 PCM 流并双轨保存:// 示例:WebRTC 中获取本地与远程音频轨道 val localAudioTrack = factory.createAudioTrack("local", audioSource) val remoteAudioTrack = peerConnection.remoteDescription?.mediaDescriptionList ?.find { it.media == "audio" }?.getAudioTrack() // 分别编码保存 → 100% 双向可控 -
引导用户使用系统级通话录音功能(最合规)
Android 12+ 原生支持部分国家/地区的通话自动录音(需设备厂商实现,如 Pixel 在印度/泰国启用)。开发者应检测并跳转至系统设置:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { Intent intent = new Intent(Settings.ACTION_CALL_SETTINGS); startActivity(intent); // 引导用户开启系统录音开关 }
⚠️ 重要注意事项
- 政策风险:Google Play 明确禁止使用 AccessibilityService 实现通话录音(Policy §4.8),违规应用将被下架。
- 隐私合规:即使技术可行,中国《个人信息保护法》及欧盟 GDPR 要求双向录音必须获得双方明示同意,UI 中须提供实时提示与一键停止功能。
- 厂商碎片化:华为、OPPO 等已完全移除 VOICE_RECOGNITION 的远端音频支持;Pixel 设备则默认禁用所有第三方通话录音能力。
综上,在 Android 13 上,不存在稳定、合规、无需 Root 的通用双向通话录音方案。开发者应转向 VoIP 架构自控音频流,或尊重系统限制,优先集成厂商提供的原生录音能力。技术探索需始终以用户隐私与平台政策为前提。











