android10 uri转file
程序员文章站
2024-02-13 19:42:10
...
fun Uri.toFile(context: Context): File? = when (scheme) {
ContentResolver.SCHEME_FILE -> toFile()
ContentResolver.SCHEME_CONTENT -> {
val cursor = context.contentResolver.query(this, null, null, null, null)
val file = cursor?.let {
if (it.moveToFirst()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
//保存到本地
val ois = context.contentResolver.openInputStream(this)
val displayName =
it.getString(it.getColumnIndex(OpenableColumns.DISPLAY_NAME))
ois?.let {
val file = File(
context.externalCacheDir!!.absolutePath,
"${Random.nextInt(0, 9999)}$displayName"
)
val fos = FileOutputStream(file)
android.os.FileUtils.copy(ois, fos)
fos.close()
it.close()
file
}
} else
//直接转换
File(it.getString(it.getColumnIndex(MediaStore.Images.Media.DATA)))
} else null
}
cursor?.close()
file
}
else -> null
}
上一篇: Zuul路由网关配置
下一篇: vue路由配置
推荐阅读
-
Android7.0中尝试传递 file:// URI 会触发 FileUriExposedException
-
Android7.0及以上拍照获取照片无法使用file://,使用content://URI
-
android10 uri转file
-
Android7.0导致Uri.fromFile(File)报错
-
Android7.0 以上版本 使用 Uri.fromFile(File) 报错
-
php file_get_contents 转curl抓取淘宝商品属性 大神帮忙下
-
了解 uri, content provide,包括 data android:host,android:scheme(转)
-
C#利用System.Uri转URL为绝对地址的方法
-
C#利用System.Uri转URL为绝对地址的方法
-
android实现Uri获取真实路径转换成File的方法