У меня есть приложение, которое хранит / обрабатывает аудиофайлы. Аудиофайлы хранятся на другом устройстве, но я могу записать их в /storage/emulated/0/Music
. Я хотел бы скопировать их на SD-карту, которая подключена к порту USB- c на note8 с моим приложением. Читал с sdcard целый день. Его путь к файлу - /storage/7256-F1FD
. Однако при попытке записи на карту я получаю сообщение об отказе в доступе. Я могу использовать ADB, войти в оболочку и выполнить cp
/storage/emulated/0/Music/file
/storage/7256-F1FD/file
, и он не копирует. Но с моим кодом Java это не работает. У меня есть разрешения для чтения и записи внешних. Я знаю, что они работают, поскольку мой код копирует в /storage/emulated/0/Music
. Вот мой код для копирования:
String filefrom="/storage/emulated/0/Music/test.mp3";
String fileto="/storage/7256-F1FD/test.mp3";
try {
java.nio.file.Files.move(Paths.get(filefrom), Paths.get(fileto), StandardCopyOption.REPLACE_EXISTING);
} catch (Exception e) {
Log.d("log", "error");
}
Я получаю ошибку отказа в доступе.
Я также пробовал следующее, поскольку cp
работал:
Runtime.getRuntime().exec("cp /storage/emulated/0/Music/test.mp3 /storage/7256-F1FD/test.mp3\n");
Файл не отображается и ошибка не записывается.
Как я могу скопировать файл из /storage/emulated/0/Music
в /storage/7256-F1FD
из моего приложения?