我正在开发一个项目来记录Android中的VOIP调用,我没有找到任何解决方案,有很多应用程序支持手机上的VOIP录音。我找不到任何教程和帮助。 Cube Call Recorder是提供此功能的应用之一,但我无法弄清楚如何做到这一点。 我通过使用android MediaRecorder 然后启动whatsapp呼叫开始录制来测试它,所以其他人无法听我的声音。通话结束后,我只检查了我的录音中保存的声音。
作为一项研究,我反向设计了一些apks,我发现他们在apk中使用了Accessibility权限。
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />
我不知道我需要了解哪些事情我怎么才能知道VOIP呼叫的来来去去就像 BroadcastReceiver 。
然后,我将了解如何录制通话。
答案 0 :(得分:0)
我找到了答案
首先授予访问权限并拥有此类
import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.Intent;
import android.util.Log;
import android.view.accessibility.AccessibilityEvent;
public class AccessAudio extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
Log.d("","gf");
}
@Override
protected void onServiceConnected() {
super.onServiceConnected();
AccessibilityServiceInfo accessibilityServiceInfo = new AccessibilityServiceInfo();
accessibilityServiceInfo.flags = 1;
accessibilityServiceInfo.eventTypes = -1;
accessibilityServiceInfo.feedbackType = 16;
setServiceInfo(accessibilityServiceInfo);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onInterrupt() {
}
}
之后,您可以使用
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile(AudioSavePathInDevice.getPath());
mediaRecorder.prepare();
mediaRecorder.start();