Запись VOIP звонков

Я работаю над проектом по записи VOIP-звонков в android, я не нашел для этого никакого решения, есть много приложений, которые поддерживают запись VOIP на телефонах. Я не могу найти никаких руководств и помощи. Cube Call Recorder - одно из приложений, которое дает эта функция, но я не могу понять, как это сделать. Я проверил это, запустив запись с помощью android MediaRecorder, а затем инициировал вызов WhatsApp, поэтому другой человек не смог услышать мой голос. после звонка проверил только мой голос сохранился в записи.

В ходе исследования я перепроектировал некоторые файлы apks и обнаружил, что они используют разрешения доступа в apk.

<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />

Я не знаю, что мне нужно понять, как я могу узнать, что вызовы на VOIP приходят и уходят точно так же, как BroadcastReceiver.

Тогда я пойму, как мне записывать звонки.


person Naveed Ahmad    schedule 20.01.2018    source источник
comment
Удалось найти решение? Я сейчас работаю над похожим приложением и не могу найти способ сделать это.   -  person Tal Mantelmakher    schedule 23.01.2019
comment
Нет приятеля Все еще нет   -  person Naveed Ahmad    schedule 23.01.2019
comment
@NaveedAhmad какое-нибудь решение для этого?   -  person Deepak    schedule 19.06.2019
comment
@Deepak По-прежнему ответ - загадка, я нашел несколько подсказок, но все еще не точное решение. Можем ли мы связаться по электронной почте? работать согласованно, если мы разрешим эту тайну, мы можем поделиться здесь   -  person Naveed Ahmad    schedule 21.06.2019
comment
Любое решение для этого?   -  person suv    schedule 04.07.2019
comment
Еще нет, ребята ....   -  person Naveed Ahmad    schedule 05.07.2019


Ответы (1)


Я нашел на это ответ

Сначала предоставьте разрешение доступа и получите этот класс

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();
person akkmastr    schedule 12.10.2020
comment
не могли бы вы объяснить это немного лучше @akkmastr? - person Dusan Lilic; 24.01.2021