Итак, я создал функцию для сохранения фотографий в галерею с названием приложения, все работало просто отлично, я работал над другими вещами в приложении (которые не связаны с этой функцией) тогда, когда я хотел используйте эту функцию снова, она перестала работать, вот мой код
fun saveImage(itemImage: View, activity: Activity) {
var fileName: String
val imageFromView = getBitmapFromView(itemImage)
ByteArrayOutputStream().apply {
Bitmap.createBitmap(imageFromView).compress(Bitmap.CompressFormat.JPEG, 100, this)
fileName = UUID.nameUUIDFromBytes(this.toByteArray()).toString().replace("-", "")
}
val imageFile = File("${Environment.getExternalStorageDirectory().absolutePath}/ChatOut/$fileName.jpg/")
val direct = File("${Environment.getExternalStorageDirectory().absolutePath}/ChatOut/").apply {
if (!exists())
mkdirs()
}
if (!imageFile.exists()) {
File(direct, "$fileName.jpg").apply {
FileOutputStream(this).apply {
Bitmap.createBitmap(imageFromView).compress(Bitmap.CompressFormat.JPEG, 100, this)
flush()
close()
}
}.let {
activity.contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
ContentValues().apply {
put(MediaStore.Images.Media.DATE_ADDED, System.currentTimeMillis())
put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg")
put(MediaStore.Images.Media.DATA, it.absolutePath)
}
)
}
Toast.makeText(activity, "saved", Toast.LENGTH_SHORT).show()
} else
Toast.makeText(activity, "Already saved", Toast.LENGTH_SHORT).show()
}
эта функция проверяет, сохранено ли уже изображение или нет, если нет, то сохраняет его, я получаю
/storage/emulated/0/ChatOut/0fe4706621ce318fb4e7292e16bcfb17.jpg: open failed: ENOENT (No such file or directory)
У меня есть разрешение на использование в моем манифесте
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Я удостоверился, что разрешение также предоставлено.
по какой-то причине, независимо от того, что я делаю, mkdirs () возвращает false никогда не удается создать файл или каталог ...
Пожалуйста, помогите, и спасибо за ваше время.