Android 5 (HTC) EACCES (разрешение отклонено)
Приложение
не может создать folder/file
на android 5(HTC HTC6525LVW os version: 5.0.1)
внешнем хранилище в каталоге, принадлежащем приложению.
Родительская папка возвращается методом [getExternalFilesDirs(String type)][1]
.
Sdcard
.
У кого-нибудь еще есть эта проблема или предложение, как ее решить?
(К сожалению, у меня нет этого устройства, чтобы проверить его больше)
Изменить: от одного пользователя я знаю, что до этой ошибки она зашифровала SD-карту, а затем отформатировала ее.
Ответы
Ответ 1
Некоторые потенциальные идеи относительно того, что вызвало это:
-
Если телефон работает в режиме USB-хранилища при подключении к вашему компьютеру, вы все равно можете развернуть/отладить, как обычно, но операции записи не будут выполняться
-
У вас не было разрешения: в файле манифеста вы должны проверить, есть ли у вас <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
-
Разрешения в неправильном месте: убедитесь, что тэг разрешения (в манифесте) находится за пределами приложения
-
Запись в папку data
может вызвать такие проблемы, поэтому убедитесь, что вы пишете на sdcard
, а не data
Это все, о чем я мог думать. Надеюсь, это поможет:)
Ответ 2
Возвращает путь к каталогу, хранящему файлы приложений на внешнем хранилище. Возвращает значение null, если внешнее хранилище в настоящий момент не установлено, поэтому он не может гарантировать, что путь существует; вам нужно будет снова вызвать этот метод, когда он будет доступен.
Другой вариант - вы можете проверить, доступно ли внешнее хранилище:
String state = Environment.getExternalStorageState();
File filesDir;
// Make sure it available
if (Environment.MEDIA_MOUNTED.equals(state)) {
// We can read and write the media
filesDir = getExternalFilesDir(null);
} else {
// Load another directory, probably local memory
filesDir = getFilesDir();
}
Ответ 3
У меня такая же проблема, но найти точные решения надеюсь, что этот ответ будет полезен для вас
//Create Folder
File folder = new
File(Environment.getExternalStorageDirectory().toString()+"/Aqeel/Images");
folder.mkdirs();
//Save the path as a string value
String extStorageDirectory = folder.toString();
//Create New file and name it Image2.PNG
File file = new File(extStorageDirectory, "Image2.PNG");
Ответ 4
Добавить разрешение на доступ к файлам manifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />