Запись звонков в Android Входящий голос не записывается

Я работаю с устройством автоматической записи звонков, я могу записывать голосовые вызовы ниже android 6, используя MediaRecorder.AudioSource.VOICE_CALL , от android 6 не удалось записать голосовые вызовы с помощью VOICE_CALL . Мне удалось записать с использованием MediaRecorder.AudioSource.MIC но здесь входящий голос не записывается, и я хочу записывать голосовые вызовы в нормальном режиме, а не в режиме динамиков. Пожалуйста помоги мне с этим. (Я пробовал Xiomi Redmi 4a (android 6), не работал).

  myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); myRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); myRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); myRecorder.setMaxDuration(60 * 60 * 1000); AudioManager audiomanager = (AudioManager)getSystemService(AUDIO_SERVICE); audiomanager.setMode(2); 

Изменить: Нет проблем с разрешениями.

Обновление: любой знает, как форсировать другой поток для источника аудиосигнала MIC. Для этого требуется собственный код для Android. Пожалуйста, помогите мне в этом. Обратитесь к этому вопросу за дополнительной информацией о маршрутизации аудио

Solutions Collecting From Web of "Запись звонков в Android Входящий голос не записывается"

Сначала эти 3 разрешения необходимы в манифесте, а также запрос разрешения времени выполнения, если устройство находится выше Marshmallow,

 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" /> 
  1. MediaRecorder.AudioSource.VOICE_CALL не поддерживается на всех телефонах, поэтому вам необходимо продолжить использование MediaRecorder.AudioSource.MIC .

Я использую это и отлично работаю на большинстве устройств,

 recorder = new MediaRecorder(); recorder.setAudioSource(audioSource); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(your_path); 
  1. Вы должны установить это, чтобы правильно записывать ваши звонки,

    audioManager.setMode(AudioManager.MODE_IN_CALL);

audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL), 0); уровень громкости при запуске записи audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL), 0);

Когда вы остановите запись, установите режим в нормальный режим, audioManager.setMode(AudioManager.MODE_NORMAL); А также установить объем потока обратно, как это было.

Это может быть проблема, связанная с разрешением.

С введением Android 6.0 Marshmallow приложение не получит разрешения во время установки. Вместо этого приложение должно запрашивать у пользователя разрешение один за другим во время выполнения.

Надеюсь, вы включили код, который явно запрашивает разрешения на устройства с Marshmallow и выше.

У устройств Xiaomi всегда есть проблемы с запросом на разрешение даже во время выполнения или времени установки.

У меня есть Xiaomi Redmi 3 pro, и он всегда заставляет отказаться от разрешения, когда я устанавливаю приложения, поэтому я должен вручную разрешить это. Если ваша проблема такая же, я нашел некоторое решение для решения проблемы, и это сработало для меня: как программным образом получить разрешение на запуск программного обеспечения MIUI Security?

пытаться

  MediaRecorder.AudioSource.VOICE_COMMUNICATION 

и посмотреть

https://androidforums.com/threads/android-phone-with-call-recording-function.181663/