так что в принципе моя проблема довольно проста, и все же я нигде не нашел решения для этого.
Прежде всего, я тестировал этот код на:
- Samsung Galaxy Tab Note 10.1 [2014] SM-P605 под управлением Android 5.1.1, API22 с установленной внешней SD-картой 32 ГБ .
- Google Pixel 3 XL под управлением Android 9, API 28
Короче говоря, я делаю заявку, и на каком-то этапе это приложение необходимо сохранитьфайл изображения (файл изображения JPG) в:
- первичное общее хранилище «Изображения» каталог
/storage/emulated/0/Pictures
или - внутри внешней SD-карты, если устройство может поддерживать один И, если оно установлено, т. е. внутри что-то вроде
/storage/extSdCard/
.
Это полностью зависит от пользователя приложения, где они хотят сохранить изображение.
Теперь, сохранение в основном (общем) общем хранилище /storage/emulated/0/Pictures
действительно просто, проблем вообще нет (буквально никаких проблем как в Pixel 3 XL, так и вGalaxy Note 10.1, все хорошо) .Моя проблема с сохранением на внешнюю SD-карту
Я использовал этот код ниже, чтобы получить путь к внешней SD-карте:
String sdCardPath = System.getenv("SECONDARY_STORAGE");
Если я попытаюсь распечатать sdCardPath выше, я получу /storage/extSdCard/
что совершенно верно, я проверил путь к внешней SD-карте в Galaxy Note с помощью ES File Explorer, и то же самое с sdCardPath .
Тем не менее, когда я сохраняю свой файл JPG в sdCardPath , даже если он выглядит так, как будто файл сохранен там без проблем (мой журнал не выдал никакой ошибки), дляПо какой-то причине изображение там не сохраняется, буквально ничего нового не сохраняется в /storage/extSdCard
.
Я также пытался создать папку Pictures внутри внешней SD-карты, но всякий раз, когда я выполнял этот блок кода:
//check if the folder already exists
if (!filePath.exists()) {
if (!filePath.mkdirs()) {
showToast("Problem creating the picture directory");
} else {
showToast("Successfully created the folder \"Pictures\"");
}
}
Он всегда показывает тост Проблема с созданием каталога изображений
Опять же, это происходит только в том случае, если я пытаюсь сохранить изображение на внешней SD-карте.Нет проблем с сохранением в /storage/emulated/0/Pictures
.
Я также использовал эти разрешения уже внутри AndroidManifest.xml
:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Так что, если кто-то знает об этом, не могли бы вы поделиться им смне или дать мне небольшую подсказку о том, что происходит?Я просто хочу иметь возможность сохранять снимки на внешнюю SD-карту и, если возможно, создать папку Pictures на SD-карте, чтобы сохранить все снимки.
С уважением