Я хочу сохранить изображение во внешнем хранилище. Моя функция работает на Android 5, но не работает на Android 8.
У меня есть android.permission.WRITE_EXTERNAL_STORAGE
в манифесте.
private fun saveImageToExternalStorage(finalBitmap: Bitmap) {
val root =
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString()
val myDir = File("$root/saved_images_1")
myDir.mkdirs()
val generator = Random()
var n = 10000
n = generator.nextInt(n)
val fName = "Image-$n.jpg"
val file = File(myDir, fName)
if (file.exists())
file.delete()
try {
val out = FileOutputStream(file)
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out)
out.flush()
out.close()
} catch (e: Exception) {
e.printStackTrace()
}
MediaScannerConnection.scanFile(this, arrayOf(file.toString()), null,
object : MediaScannerConnection.OnScanCompletedListener {
override fun onScanCompleted(path: String, uri: Uri) {
Log.i("ExternalStorage", "Scanned $path:")
Log.i("ExternalStorage", "-> uri=$uri")
}
})
}
Хотел изменить его на context.contentResolver
, но не могу :( Надеюсь, вы поможете!