Android Exception: java.io.IOException: open failed: EACCES (Permission denied)

По какой-то странной причине, я постоянно сталкиваюсь с проблемой с различными типами устройств Android, для сохранения захваченных изображений на устройстве хранения.

Здесь представлен подробный журнал ошибок, чего, собственно, и получаю.

java.io.IOException: open failed: EACCES (Permission denied) at java.io.File.createNewFile(File.java:940) at com.parkhya.pick_for_shareAflash.HomeActivity.resizeImage(HomeActivity.java:456) at com.parkhya.pick_for_shareAflash.HomeActivity.onActivityResult(HomeActivity.java:393) Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied) at java.io.File.createNewFile(File.java:933) 

Хотя, все другие приложения для Android, такие как Instagram и другие, могут сохранять снимки с камеры на устройствах. Кто-нибудь, можете ли вы предложить, что мне делать, чтобы мое приложение сохраняло фотографии камеры в SD-карте.

Solutions Collecting From Web of "Android Exception: java.io.IOException: open failed: EACCES (Permission denied)"

Добавьте разрешение для Разрешить приложению писать на внешнее хранилище.

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

Позволяет программе читать данные из внешнего хранилища.

Любое приложение, объявляющее разрешение WRITE_EXTERNAL_STORAGE, неявно получает это разрешение.

Это разрешение вводится в действие начиная с API уровня 19. До уровня API 19 это разрешение не применяется, и все приложения все еще имеют доступ к чтению с внешнего хранилища. Вы можете протестировать свое приложение с помощью разрешения, разрешенного включением Protect USB storage в разделе «Параметры разработчика» в приложении «Настройки» на устройстве под управлением Android 4.1 или выше.

Это может вам помочь. Я сталкиваюсь с той же проблемой при записи файла на SD-карте. Я установил все необходимые разрешения для записи файла, но я использовал объект файла, как показано ниже:

Неправильно:

 File myFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile()+fileName); 

Верный:

 File myFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile(), fileName); 

Это означает, что путь был неправильным.

Решение, которое я нахожу,

Отредактируйте эмулятор 1. перейдите в диспетчер виртуальных устройств Android и затем отредактируйте эмулятор 2. установите 100 МБ для карты Sd для уважаемого эмулятора и скажите «ОК» 3. Сохраните и закройте эмулятор и запустите 4. Сохраненный путь: нажмите DDMS mnt / sdcard / Yourfilename это сработало для меня, приложение не дает Ошибка и работает

Обратите внимание на следующую ловушку: кто-то написал

 <uses-permission android:name="android.permission.INTERNET" > </uses-permission> 

В AndroidManifest.xml. Я хотел сохранить файлы и добавил указанную строку и получил

 <uses-permission android:name="android.permission.INTERNET" > <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> </uses-permission> 

Что является плохим синтаксисом. Должен быть

 <uses-permission android:name="android.permission.INTERNET" > </uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

или

 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />