问题描述
fun saveMediaToStorage(bitmap: Bitmap,context: Context) {
val filename = "${System.currentTimeMillis()}.jpg"
var fos: OutputStream? = null
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
context.contentResolver?.also { resolver ->
val contentValues = ContentValues().apply {
put(MediaStore.MediaColumns.disPLAY_NAME,filename)
put(MediaStore.MediaColumns.MIME_TYPE,"image/jpg")
put(MediaStore.MediaColumns.RELATIVE_PATH,Environment.DIRECTORY_PICTURES)
}
val imageUri: Uri? =
resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,contentValues)
fos = imageUri?.let { resolver.openOutputStream(it) }
}
} else {
val imagesDir =
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
val image = File(imagesDir,filename)
fos = FileOutputStream(image)
}
fos?.use {
bitmap.compress(Bitmap.CompressFormat.JPEG,100,it)
}
}
我在清单文件中有权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
以及属性:
android:requestLegacyExternalStorage="true"
我在使用 FileExplorer 应用程序时看到保存在正确位置的图像,但 gallary 应用程序无法识别它。
有没有人注意到我做错或遗漏了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)