小编asa*_*mar的帖子

是否使用android 10(2019)录音回叫?

我真的对Android中的通话录音感兴趣。但是,您已经知道android正式关闭了android 9中的语音通话记录。但是就在Android 10发行(2019年9月3日)之后,在浏览其新发行说明时,我遇到了以下页面,该页面看起来很有希望通话录音。 https://developer.android.com/guide/topics/media/sharing-audio-input。在这里,有关语音通话录音的内容如下。

语音通话+普通应用程序
如果AudioManager.getMode()返回的音频模式为MODE_IN_CALL或MODE_IN_COMMUNICATION,则语音通话处于活动状态。

Android根据以下规则共享输入音频:

呼叫始终会接收音频。如果该应用是无障碍服务,则可以捕获音频。如果该应用是具有权限CAPTURE_AUDIO_OUTPUT的特权(预安装)应用,则该应用可以捕获语音呼叫。

要捕获语音呼叫的上行链路(TX),下行链路(RX)或两者,应用必须指定音频源MediaRecorder.AudioSource.VOICE_UPLINK或MediaRecorder.AudioSource.VOICE_DOWNLINK和/或设备AudioDeviceInfo.TYPE_TELEPHONY。

因此,阅读本文后,我尝试在辅助功能服务中捕获音频。这是我的代码。 无障碍服务

    public class MyAccessibilityService extends AccessibilityService {
FrameLayout mLayout;
public MyAccessibilityService() {
}

@Override
public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) {

}

@Override
public void onInterrupt() {

}

@Override
protected void onServiceConnected() {

    WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
    mLayout = new FrameLayout(this);
    WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
    lp.type = WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
    lp.format = PixelFormat.TRANSLUCENT;
    lp.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
    lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
    lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
    lp.gravity = Gravity.TOP;
    LayoutInflater inflater = LayoutInflater.from(this);
    inflater.inflate(R.layout.action_bar, mLayout); …
Run Code Online (Sandbox Code Playgroud)

android accessibility call-recording android-10.0

6
推荐指数
1
解决办法
4345
查看次数