Я уже выполнил поиск по переполнению стека, и в основном все ответы используют Environment.getExternalStorageDirectory()
, чтобы получить каталог sd-карты.
Однако в моем телефоне это всегда дает мне /storage/emulated/0
, который выглядит как внутренний память (не настоящая SD-карта), в то время как мне нужен путь, такой как /storage/6265-6530
, который является реальной SD-картой. Я проверил, что мой путь SD-карты /storage/6265-6530
в android studio.
Я пытался создать папку напрямую, используя
File file = new File("/storage/6265-6530/MyApp/");
boolean result = file.mkdirs();
Но результат всегда false
.
Я предоставил все разрешения, такие как android.permission.WRITE_EXTERNAL_STORAGE
, и запрашиваю разрешение во время выполнения. Но все равно получите сообщение об ошибке выше.
Пока я пытался создать папку в /storage/emulated/0
, и это нормально, как показано ниже.
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyApp/");
boolean result = file.mkdirs();
и созданный путь будет: "/ storage / emulated / 0 / MyApp "
Я также пытался получить каталог sd-карты, используя ниже:
File[] fs = reactContext.getExternalFilesDirs(null);
fs[1].getAbsolutePath()
, но я могу получить каталоги c, определяемые приложением, только в sd карта, как /storage/6265-6530/Android/data/<my application package>/files
, а не root путь SD-карты.
Как я могу получить доступ для записи файлов / создания папок по root пути SD-карты? например. /storage/6265-6530/
Моя android версия 7.
Спасибо