Titanium - внешнее хранилище Android - создайте новый каталог, а затем запишите в него файлы
Можем ли мы не просто создавать новый каталог программно на внешней SD-карте (а не на внутренней памяти устройства) на Android и не можем ли мы записывать файлы на SD-карту?
Титан настолько ограничен, чтобы всегда записывать файлы во внутреннюю память даже после использования Ti.Filesystem.externalStorageDirectory?
Может ли кто-нибудь, кто когда-либо мог создать новый каталог программно на SD-карте в Android, напишет ответ здесь, или никто не должен что-то писать на внешней SD-карте?
Ответы
Ответ 1
Вы можете использовать класс System
для получения переменных хранилища, например ниже
Чтобы получить внутреннюю SD-карту, вы можете использовать
String extStore = System.getenv("EXTERNAL_STORAGE");
File f_exts = new File(extStore);
Чтобы получить внешнюю SD-карту, вы можете использовать
String secStore = System.getenv("SECONDARY_STORAGE");
File f_secs = new File(secStore);
Вы можете выбрать, где создать папку и какой из них использовать.
ИЗМЕНИТЬ
Environment.getExternalStorageDirectory()
Подробности
- Возврат первичного общего/внешнего каталога хранения.
- Этот каталог в настоящее время недоступен, если он был установлен пользователем на своем компьютере, удален с устройства или возникла другая проблема. Вы можете определить его текущее состояние с помощью getExternalStorageState().
Примечание. Не путайте слово "внешний" здесь. Этот каталог лучше воспринимать как медиа/общую память. Это файловая система, которая может хранить относительно большой объем данных и совместно используется во всех приложениях (не обеспечивает разрешения). Традиционно это SD-карта, но она также может быть реализована как встроенное хранилище в устройстве, которое отличается от защищенного внутреннего хранилища и может быть смонтировано как файловая система на компьютере.
Ссылка из Environment
Надеюсь, что это поможет.
Ответ 2
попробуйте создать папку и файл в sdcard
File localFile = new File(Environment.getExternalStorageDirectory(),"/data/create_new_folder_name/");
if (!localFile.exists()) {
localFile.mkdir();
}
try{
File gpxfile = new File(localFile, "yourfilename.xyz");
FileWriter writer = new FileWriter(gpxfile,true);
writer.append("your file text");
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
manifest.xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Ответ 3
Используйте платформу доступа к хранилищу для записи на карту micro SD. Google для ACTION_OPEN_DOCUMENT_TREE и ACTION_OPEN_DOCUMENT.
Кроме того, вы можете писать обычным способом в одном конкретном каталоге приложения на карте micro SD. Посмотрите на вторую запись, возвращаемую getExternalFilesDirs().