Я хочу сохранить простой файл .txt
в Android, а позже я хочу скопировать этот файл с устройства на ПК, где устройство смонтировано как MTP-устройство.
У меня есть два Android-устройства:
- Nexus 4, стандартный Android 5.0.1
- Nexus 7 2012, CyanogenMod 12, Android 5.0.2
Чтобы убедиться, что это не ошибка устройства Nexus, я попробовал телефон Wiko у друга.
Я использую этот код для сохранения файла в папку «Загрузки» на внешнем хранилище. Это рекомендуется на странице разработчика.
private void saveData()
{
String fileName = "test.txt";
String writeString = "Hello World";
File filePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File saveFile = new File(filePath, fileName);
saveFile.setReadable(true);
try
{
boolean result = saveFile.createNewFile();
if(result == true)
{
Log.i(TAG, "File successfully created");
}
else
{
Log.i(TAG, "Error. File not created");
}
BufferedWriter writer = new BufferedWriter(new FileWriter(saveFile));
writer.write(writeString);
writer.close();
}
catch(Exception e)
{
Log.e(TAG,e.toString());
}
}
Я использую следующие разрешения:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Когда я использую MTP для подключения к устройству, я получаю пустую папку для загрузки, но когда я получаю доступ к папке через файловый браузер в Android (в моем случае это файловый браузер ES), я вижу файл и содержимое. Поэтому я думаю, что создание файла и запись в него работают.
При создании файла получаю правильный Журнал: "Файл успешно создан".