Не могу создать папку на внешнем хранилище на Android

Мой телефон для разработкиNexus 5, БегAndroid 4.4.2.

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

Я начал с попытки записи файла в папку, но обнаружил, что при создании папки произошла ошибка. Сначала я использовалmkdir()Затем я перешел наmkdirs() что тоже не сработало.

у меня есть<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> в моем манифесте.

Вот код для создания папки:

    File folder = new File(Environment.getExternalStorageDirectory() + "/DebugData");

    String path = folder.getPath();

    if(!folder.mkdirs() || !folder.exists()){        
            Log.e(LOG_TAG, path + " failed");
        } else {
            Log.d(LOG_TAG, path + " succeeded");
        } 

Вот что я тоже попробовал:

    //Check SD card state
    String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state) || !Environment.MEDIA_MOUNTED.equals(state)) {
        Log.e(LOG_TAG, "Error: external storage is read only or unavailable");
    } else {
        Log.d(LOG_TAG, "External storage is not read only or unavailable");
    }

Это возвращает, что внешнее хранилищене только для чтения или недоступно.

Я также пробовал разные пути, такие какFile folder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Folder1");

Вот где это стало действительно запутанным.

Я пробовал разработку на разных телефонах. Во-первых, я схватилGalaxy S4 GT-i9505 БегAndroid 4.2.2 и это сработало. Я был в состоянии создавать папки и писать в них. Это показало мне, что код работает. Также путь, возвращаемый при запуске кода на S4 и Nexus 5, был таким же.

Тогда я думал, что это может быть конкретной версии Android. Так что я схватилNexus 4 с участиемAndroid 4.4.2 и код работал над этим также. Создал папки и позволил мне писать в них.

Ни один из телефонов не рутирован и все стандартные. Там нет специальных приложений или что-нибудь, что я могу думать о настройках на Nexus 5, которые могли бы вызвать проблемы с разрешениями. Соединение установлено на медиаустройство (MTP).

РЕДАКТИРОВАТЬ:

Я должен добавить, что я попробовал следующее, которое также не работало:

Запись файла в корневой каталог внешнего хранилищаСоздание файла в корневом каталоге внешнего хранилища и запись в негоСоздание папки по указанному пути и запись в нее файлаСоздание файла по указанному пути и запись в него

Я не понимаю, что является причиной этого, могу ли я проверить или изменить что-либо еще, чтобы устранить проблему?

РЕДАКТИРОВАТЬ 2:

Оказывается, проблема была связана с индексацией.

В основном все другие устройства, на которых я тестировал, позволили мне повторно подключить USB-соединение и просмотреть созданные файлы и папки.

По какой-то причине мой Nexus 5 не индексирует папки / файлы, даже если они существуют.

Я скачал другое стороннее приложение для просмотра файлов и заметил, что все папки и файлы были там.

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

Благодарю.

Ответы на вопрос(7)

Ваш ответ на вопрос