Я разработал приложение, которое - загрузить некоторые данные (.png и .wav файлы) - вставить путь, где каждый из файлов загружается в базу данных (SQLite)Android сохранить загруженные данные на SD
Так все так хорошо, все работает. Некоторые пользователи спрашивали меня, есть ли способ переместить загруженные данные на SD-карту, чтобы сохранить некоторое внутреннее пространство.
В настоящее время я создать каталог с этой строки кода
File directory = getApplicationContext().getDir("folderName", Context.MODE_PRIVATE);
Затем приложение будет заполнить его весь материал, я скачал.
Я попытался с помощью этого куска кода:
try {
File newFolder = new File(Environment.getExternalStorageDirectory(), "TestFolder");
if (!newFolder.exists()) {
newFolder.mkdir();
}
try {
File file = new File(newFolder, "MyTest" + ".txt");
file.createNewFile();
System.out.println("Path: " + file.getPath());
} catch (Exception ex) {
System.out.println("ex: " + ex);
}
} catch (Exception e) {
System.out.println("e: " + e);
}
И это создать папку и текстовый файл в: /storage/emulated/0/TestFolder/MyTest.txt , который не мой каталог SDCard, он должен быть: /storage/sdcard1/TestFolder/MyTest.txt
Так что мой вопрос: - где и как я сохранил личные данные моего приложения (в .png и .wav файлы) в SD-карты?
«The getExternalStorageDirectory не всегда возвращает папку на SD card "- точнее, он всегда возвращает корень [внешнего хранилища] (https://commonsware.com/blog/2014/04/08/storage-situation-external-storage.html). Внешнее хранилище практически невозможно снимать на современных устройствах Android. – CommonsWare
«не всегда возвращает папку на SD-карте» это потому, что Android Docs говорят (о [ 'getExternalStorageDirectory()'] (http://developer.android.com/intl/ko/reference/android/os /Environment.html#getExternalStorageDirectory%28%29)) 'Традиционно это SD-карта, но она также может быть реализована как встроенное хранилище в устройстве, которое отличается от защищенного внутреннего хранилища и может быть смонтировано как файловая система на компьютер.' – Sufian
Я сделал несколько тестов: Motorola MotoG 2-го поколения с Android 5.0.2 и SD-картой:/storage/sdcard1/Android/data/mypackage/cache/bmp Asus Nexus7 с ОС Android 6.0 и NO sd card return: /storage/emulated/0/Android/data/com.vesco.personaggi2/cache/bmp Что вы написали, это своего рода блестящий человек. – Vesco