Android сохраняет FileOutputStream в галерее

У меня есть изображение, созданное с помощью FileOutputStream, и я пытаюсь сохранить его в галерее. Я искал ответы на переполнение стека и везде, и у меня ничего не работает.

Мой код:

File path = MainActivity.this.getExternalFilesDir("ComputerScreenshots");
FileOutputStream ops = new FileOutputStream(path + "/Computer.png");

Приведенный выше код сохраняет изображение в /storage/emulated/0/Android/data/com.example.computer/files/ComputerScreenshots/Computer.png

Как сохранить в галерею?

Это работает сейчас?

Nadim Ansari 24.12.2020 13:58

Не так. Но не страшно. буду пробовать другие способы спасибо большое дружище

זיו שיאון 24.12.2020 14:09
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
213
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, что приведенный ниже код поможет вам.

File path = new File( Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DCIM), "ComputerScreenshots");

Проверить, существует ли ваш каталог или нет? если нет то сделай.

if (!path.exists())
        path.mkdir()

Если вы хотите сохранить изображение в каталоге камеры, замените ComputerScreenshots на Camera.

подожди я отправлю

זיו שיאון 24.12.2020 13:30
java.io.FileNotFoundException: /storage/emulated/0/DCIM/ComputerScreenshots/Computer.png: open failed: ENOENT (No such file or directory)
זיו שיאון 24.12.2020 13:31

Я поменял на Camera и получил java.io.FileNotFoundException: /storage/emulated/0/DCIM/Camera/Computer.png: open failed: EACCES (Permission denied)

זיו שיאון 24.12.2020 13:32

У вас есть каталог создан?

Nadim Ansari 24.12.2020 13:33

Нет, именно поэтому я попытался сохранить на камеру, и мне было отказано в доступе.

זיו שיאון 24.12.2020 13:35

Я хочу сохранить его в камеру. И я получил доступ, когда добавил android:requestLegacyExternalStorage = "true"

זיו שיאון 24.12.2020 13:37

Но теперь я не нахожу изображение в каталоге камеры

זיו שיאון 24.12.2020 13:38

Вы используете разрешение во время выполнения?

Nadim Ansari 24.12.2020 13:39

Теперь я получил разрешение. Но у меня новая проблема. Я могу сохранить изображение. Работает, но когда открываю галерею, не находит изображение' только когда подключаю телефон к компу, нахожу его в галерее (из проводника)

זיו שיאון 24.12.2020 13:41

Почему я могу найти изображение только через компьютер в проводнике сотового телефона?

זיו שיאון 24.12.2020 13:44
if (!path.exists()) path.mkdir() Проверьте, создан ли он: if (!path.exists()) if ( !path.mkdir()){ Toast(..sorry could not create directory...); return;} Обсуждение касается невозможности создать файл. Но каталог не может быть создан для начала. Знай свою проблему!
blackapps 24.12.2020 14:42

Другие вопросы по теме