Я пытался сохранить некоторые строки на SD-карте. но он выбрасывал это исключение открытым с ошибкой EACCES (Permission denied). Я тестировал это на устройстве (asus zenfone 5). Я объявил разрешения в файле манифеста - WRITE_EXTERNAL_STORAGE, моя sd-карта смонтирована, и данные можно записать и прочитать из нее (я лично проверил ее, скопировав некоторые mp3-файлы и воспроизведя их). поскольку это было специфическое для телефона приложение, и у телефона есть внутреннее и внешнее хранилище в нем, и я хочу сохранить файл на внешней SD-карте, я написал такой код. Я получил абсолютный путь внешней SD-карты, используя приложение эмулятора терминала, используя команды «cd» и «ls». Мой телефон не укоренен, поэтому я не могу напрямую изменять разрешения. Я попытался использовать все возможные методы google и stackoverflow. пожалуйста, помогите мнеopen failed EACCES (Permission denied)
public void savePublicExternalFile(String data){
File folder = new File("/Removable/MicroSD/");
//i have also tried File folder = new File("/Removable/MicroSD");
File myFile = new File(folder,"mydata.txt");
WriteData(myFile, data);
}
private void WriteData(File myFile, String data){
if(t){
Log.i("AbsolutePath",myFile.getAbsolutePath());
t = false;
}
FileOutputStream fileOutputStream=null;
try {
fileOutputStream = new FileOutputStream(myFile);
fileOutputStream.write(data.getBytes());
} catch (Exception e) {
Log.i("exception",e.toString());
} finally {
if(fileOutputStream!=null){
try {
fileOutputStream.close();
} catch (IOException e) {
Log.i("exception", e.toString());
}
}
}
}
Это было полезно, я смог написать внутри android-папку sd-карты, потому что файлы [1] дали мне этот путь, есть ли какой-либо метод, с помощью которого я могу получить корневой путь sd-карты, используя этот или любой другой метод? –
Иисус Христос взял меня на два часа, чтобы найти ответ. Огромное спасибо. Я пробовал целую вечность с вызовом Environment, но он никогда не работал для моей системы Android 6 (версии раньше работали нормально). Вот мой подъем! –