如何从uri获取路径?android开发
我是超级新的URI和路径在移动应用。我需要从URI获取设置为视频视图的路径。 从uri.path()中检索,如下所示 “/5/2/content://media/external/video/media/3200/ORIGINAL/NONE/160511194" 当我将上面的uri.path()设置为“视频视图”时,出现的错误表示文件不存在 所以我需要。。 示例:来自URI “/storage/simulated/0/Pictures/App/crapped.mp4”如何从uri获取路径?android开发,android,kotlin,video-processing,Android,Kotlin,Video Processing,我是超级新的URI和路径在移动应用。我需要从URI获取设置为视频视图的路径。 从uri.path()中检索,如下所示 “/5/2/content://media/external/video/media/3200/ORIGINAL/NONE/160511194" 当我将上面的uri.path()设置为“视频视图”时,出现的错误表示文件不存在 所以我需要。。 示例:来自URI “/storage/simulated/0/Pictures/App/crapped.mp4” 我需要知道有没有可能得到,
我需要知道有没有可能得到,这个呼叫路径是什么或者其他什么 您需要从
uri
获取绝对路径。通常,content://
路径是从下载文件夹或任何驱动器路径返回的,您需要获取它的实际路径。
你可以试试这个
fun Uri.getPathString(context: Context): String {
var path: String = ""
context.contentResolver.query(
this, arrayOf(MediaStore.Images.Media.DATA),
null, null, null
)?.apply {
val columnIndex = getColumnIndexOrThrow(MediaStore.Images.Media.DATA)
moveToFirst()
path = getString(columnIndex)
close()
}
return path
}
您无法获取Uri路径并编辑文件,因为您使用Uri获取的文件具有临时授予的Uri权限,并且您对这些文件的访问权限有限,但如果您只需要在视频视图上显示视频,则可以使用
setVideoURI(Uri Uri)
在视频视图上。您告诉了我们uri.path的值,但查看了uri.string并看到了一个好的内容方案。然后完全不清楚您想要什么。如果您有一个好的内容方案,您甚至不会尝试获取经典文件路径。相反,您应该按原样使用uri(内容方案)。您无法从uri获取路径。由于安全原因,许多决策为方法Uri.getPath()返回null。但是,您可以从uri打开inputstream并读取数据。然后,您可以将数据写入临时文件并使用此临时文件。这是否回答了您的问题?谢谢你们,但并不是我所期望的。若你们能解释一下URI、绝对路径和文件路径之间的区别或提供参考,我将不胜感激?