VOIP Call Recording
Я работаю над проектом для записи VOIP-звонков в Android, я не нашел никакого решения для этого, есть много приложений, которые поддерживают VOIP-записи на телефонах. Я не могу найти учебник и помощь. Cube Call Recorder - одно из приложений, которое предоставляет эту функцию, но я не могу понять, как это сделать. Я проверил это, начав запись с помощью Android MediaRecorder, затем инициировал вызов WhatsApp, поэтому другой человек не смог прослушать мой голос. после звонка я проверил, только мой голос был сохранен в записи.
В качестве исследования я изучил некоторые apks и обнаружил, что они используют разрешения Accessibility в apk.
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />
Я не знаю, что мне нужно понять, как я могу узнать, что на VOIP звонок приходит и уходит точно так же, как BroadcastReceiver.
Тогда я пойму, как я могу записывать звонки.
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();