弃用Mediastore.Video.Media.DATA时如何根据Android 10API级别29从库中选择视频或图像并获取其路径

问题描述

我正试图从画廊中挑选视频,并希望获得真实的路径。但是在代码中,它显示了API级别29中弃用的Mediastore.Video.Media.DATA id。因此,请帮助我找出解决方案。

这是我的视频选择器代码

val i = Intent(Intent.ACTION_PICK,MediaStore.Video.Media.EXTERNAL_CONTENT_URI)

startActivityForResult(i,videoCode)

override fun onActivityResult(requestCode: Int,resultCode: Int,data: Intent?) {
super.onActivityResult(requestCode,resultCode,data)
if (requestCode == videoCode && resultCode == RESULT_OK) {
    videoPath = getPathFromUri(data!!.data)
}

}

private fun getPathFromUri(uri: Uri?): String? {
var path:String?=null
val projection = arrayOf(MediaStore.Video.Media.DATA)
val cursor = contentResolver.query(uri!!,projection,null,null)
if (cursor != null) {
    val columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA)
    cursor.movetoFirst()
    path=cursor.getString(columnIndex)
}
cursor?.close()
return path

}

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)