Получение исключения IOException в программе записи Android

0

Функция запуска записи -

  private fun startRecording() {
    if (checkpermissions()) {
        recorder = MediaRecorder().apply {
            setAudioSource(MediaRecorder.AudioSource.MIC)
            setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)
            setOutputFile(fileName)
            setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB)

            try {
                prepare()
            } catch (e: IOException) {
                Log.e(LOG_TAG, "prepare() failed")
            }
        }
    } else {
        requestpermissions()
    }

}

Функция проверки разрешений: -

private  fun checkpermissions(): Boolean {
        val result = ContextCompat.checkSelfPermission(applicationContext, WRITE_EXTERNAL_STORAGE)
        val result1 = ContextCompat.checkSelfPermission(applicationContext, RECORD_AUDIO)
        return result == PackageManager.PERMISSION_GRANTED && result1 == 
        PackageManager.PERMISSION_GRANTE
      }

Функция запроса разрешения: -

private fun requestpermissions()
    {
        ActivityCompat.requestPermissions(
            [email protected],
            arrayOf(RECORD_AUDIO, WRITE_EXTERNAL_STORAGE),
            REQUEST_AUDIO_PERMISSION_CODE
        )
    }

Явное разрешение, взятое мной: -

<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.STORAGE"/>

Программа не запрашивает разрешение на хранение. При запуске любого приложения получение исключения IOException в функции startRecording (). Приложение не сохраняет аудиофайл в своем хранилище. Может быть, из-за этого я получаю исключение. Пожалуйста помоги.

1
  • Пожалуйста, удалите приложение с вашего устройства, установите его снова и проверьте его. 12 сен в 8:15
0

Я предлагаю вам использовать новый api для получения разрешения: разрешение на выполнение с новым api