为什么我们不能在安卓应用中录制来电?

3

有没有办法通过Android代码记录来电?

如果这个功能不存在,那么第三方应用程序是如何录音的呢?

2个回答

1
记录通话的能力取决于硬件或固件。大多数安卓手机内部未设置音频路径,使语音通话音频完全到达应用处理器。
市场上使您能够记录通话的应用程序要么:仅适用于上述情况不适用的特定型号手机(非常少),要么使用一个技巧,它要求您使用扬声器并实际从手机麦克风捕捉手机扬声器发出的通话音频...

0

a) 获取READ_PHONE_STATE和RECORD_AUDIO权限

b) 注册一个电话状态接收器

    <receiver android:name="com.record.app.callrecorderapp.CallStateListener" >
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE" />
        </intent-filter>
    </receiver>

c) 在呼入电话时触发录音

public class CallStateListener extends BroadcastReceiver {                                   
    public void onReceive(Context context, Intent intent) {                                  
        if (TelephonyManager.EXTRA_STATE_RINGING.equals(state)) {                            
           startRecording();
        }

    }
}

d) 进行实际录制

void startRecording() {
    recorder = new MediaRecorder();
    recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 
    recorder.setOutputFile(filePath);
    recorder.start();
}

这需要更多的记账工作,但你会弄明白的。

应该可以在大约50%的设备上运行,包括Galaxy S4 + S5。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接