2012-03-29 4 views
1

Я пытаюсь записать файл во внешнюю папку хранения на Android. Вот мой код:Android: разрешение запрещено при создании нового файла во внешнем хранилище

String state = Environment.getExternalStorageState(); 

if(Environment.MEDIA_MOUNTED.equals(state)) { 
    saveState= true; 
    File pPath= Environment.getExternalStorageDirectory(); 

    if(!pPath.exists()) { 
      boolean bReturn= pPath.mkdirs(); 
      Log.d(TAG, "mkdirs returned: " + bReturn); 
    } 
    try { 
      File pFile= new File(pPath, "output.pcm"); 
      pFile.createNewFile(); 
      outputLocation= pFile.getAbsolutePath().toString(); 
    } catch (IOException e) { 
      Log.d(TAG, "Could not create file: " + e.toString()); 
      saveState= false; 
    } 
} // end if we can read/write to the external storage 

Вызов createNewFile() возвращает «Не удалось создать файл: java.io.IOException: Отказано в»

У меня есть android.permission.WRITE_EXTERNAL_STORAGE в моем файле манифеста , Кажется, что есть тонна вопросов по этой проблеме, и это решает большинство из них, но у меня все еще есть эта проблема. Вот часть манифеста:

<?xml version="1.0" encoding="utf-8"?> 
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="company.example.sample" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="10" /> 
    <permission android:name="android.permission.RECORD_AUDIO"></permission> 
    <permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"></permission> 
    <permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></permission> 

Любые идеи?

ответ

7

<permission> Замените элементы с элементами <uses-permission>:

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

<permission> определяет новое разрешение; <uses-permission> указывает, что вы хотите получить разрешение.

+0

Вау, вот и все. Разве мое лицо не красное! –

+2

@rotaludom: На самом деле, я не могу сказать, какой цвет у вас сейчас. Не могли бы вы повернуть немного влево? Нет, нет, другой остался. Ах, да, ваше лицо немного красное. Это было просто сложно сказать, пока вы не повернулись лицом к скрытой веб-камере. Рад, что мы это выяснили! :-) – CommonsWare

Смежные вопросы