我想将图像保存在外部存储器中。我的功能适用于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。私人娱乐...
从23以上的SDK版本开始,您需要添加一些用于URI公开的内容。扩展应用程序类以及位于代码下方的onCreate()方法内部,