4

Я новичок в разработке Android, и у меня есть следующий вопрос/проблема.Проблемы с классом MediaRecorder для записи звука - prepare() дает исключение - Разрешение отклонено

Я играю с классом MediaRecorder для записи только звука с микрофона. Я следую инструкциям, указанным на официальном сайте: http://developer.android.com/reference/android/media/MediaRecorder.html

У меня есть метод, который инициализирует и настраивает объект MediaRecorder, чтобы начать запись. Здесь у вас есть код:


     //initializes audio recorder 
     MediaRecorder mrecorder = new MediaRecorder(); 
     //configure the input sources 
     mrecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
     //set the output format 
     mrecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
     //set the audio encoding 
     mrecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 
     //specify the output file 
     mrecorder.setOutputFile("/sdcard/test.3gp"); 
     //prepare for recording 
     try { 
      mrecorder.prepare(); 
     } catch (IllegalStateException e) { 
      e.printStackTrace(); 
      Log.d("Syso". e.toString()); 
     } catch (IOException e) { 
      e.printStackTrace(); 
      Log.d("Syso". e.toString()); 
     } 

Когда я выполняю этот код на тренажере, благодаря LogCat, я могу видеть, что метод подготовки() дает исключение при вызове:


java.io.FileNotFoundException: /sdcard/test.3gp (Permission denied) 

И Я понятия не имею, почему это происходит. В связи с сообщением исключения, я дал разрешения в манифесте для доступа к памяти, добавив следующую строку в XML:


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

Но это ничего не исправить, и я все еще получаю такое же исключение все время. SDCard монтируется в соответствии с эмулятором, поэтому я не знаю.

ответ