2016-02-21 4 views
0

Я использую Android Studio. У меня есть проект, требующий API версии 11. Эмулятор установлен для Nexus 5 API23 (стандартные настройки по умолчанию).Не удается заставить Android создать папку в открытом внешнем хранилище

Я хочу, чтобы мое приложение записывало простой текстовый файл в место, где я могу вытащить текстовые файлы, созданные на моем компьютере, подключив кабель USB. Поэтому он должен находиться в открытом внешнем хранилище.

По какой-то причине я не могу получить код для создания папки для моих текстовых файлов. Я в паре мой код вниз к этой небольшой самородок в классе «Утилиты» У меня есть:

public static boolean createTheDangFolder(Context c, String fileName, String body) { 
    boolean saved = true; 
    //File dir = new File(c.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "MyCustomFolder"); 
    File dir = new File(Environment.getExternalStorageDirectory(), "MyCustomFolder"); 
    if (!dir.exists()) { 
     saved = dir.mkdirs(); 
    } 
    return saved; 
} 

Эта функция всегда возвращает ложь. Если я комментирую строку «Файл», она вернет true, но прокомментированная строка - это память приложения, и я не могу получить доступ к файлам через USB.

У меня есть эта строка в моем файле манифеста:

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

Я не могу за жизнь мне понять, почему это не работает, и ни один из других вопросов на сайте не дал мне решение, работает.

ответ

1

Они изменили разрешения на внешнее хранилище в KitKat. Вы можете записывать только в общие папки (например, загрузки) и в собственный каталог своего собственного приложения на внешнем хранилище.

+0

OK. Поэтому я изменил строку на «Файл dir = новый файл (Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_DOWNLOADS)», «MyCustomFolder»); но он все еще не работает. Это неправильно? – William

+0

У вас будет меньше проблем, если вы не будете бороться с Android, и просто написали их, чтобы набрать приватную директорию на SD-карте. Позвольте компьютеру захватить оттуда –

+0

Я хотел бы это сделать. Проблема в том, что я не вижу файлы с ПК. У меня есть приложение для просмотра файлов на моем телефоне, и ни тот, ни на ПК через USB не могут видеть файлы в каталоге приложения. – William

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