首页 > 解决方案 > 如何从图库中选择视频或图像并根据 Android 10(API 级别 29)获取其路径,因为 Mediastore.Video.Media.DATA 已弃用

问题描述

我正在尝试从图库中挑选视频并希望获得它的真实路径。但是在代码中它显示了 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, null)
    if (cursor != null) {
        val columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA)
        cursor.moveToFirst()
        path=cursor.getString(columnIndex)
    }
    cursor?.close()
    return path
}

标签: androiddeprecatedmediastoreandroid-10.0

解决方案


推荐阅读