无法在Android Oreo中将图像保存到外部存储中>>

问题描述 投票:0回答:1

我想将图像保存在外部存储器中。我的功能适用于android 5,但不适用于android8。

我在清单中有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进行更改,但不能:(希望您会有所帮助!

我想将图像保存在外部存储器中。我的函数在android 5上有效,但在android 8上无效。我在清单中有android.permission.WRITE_EXTERNAL_STORAGE。私人娱乐...

android kotlin android-8.0-oreo android-external-storage
1个回答
0
投票

从23以上的SDK版本开始,您需要添加一些用于URI公开的内容。扩展应用程序类以及位于代码下方的onCreate()方法内部,

© www.soinside.com 2019 - 2024. All rights reserved.