content:/media/external/video/media/19
みたいなのが変換されずに困った。単にtoString()
しても失敗する
これをすると
https://stackoverrun.com/ja/q/2497866
MediaStore.Images.Media.DATA
がdeprecatedだしな。
/** * Android 10以降で使用するためのURLからPathの変換 * * @param context Activity. * @param uri URI */ fun getPath(context: Context?, uri: Uri): String? { var cursor: Cursor? = null val column = "_data" val projection = arrayOf(column) try { cursor = context!!.contentResolver.query(uri!!, projection, null, null, null) if (cursor != null && cursor.moveToFirst()) { val columnIndex: Int = cursor.getColumnIndexOrThrow(column) return cursor.getString(columnIndex) } } catch (e: Exception) { e.printStackTrace() } finally { cursor?.close() } return null }
https://stackoverflow.com/questions/3401579/get-filename-and-path-from-uri-from-mediastore
ここからパクってまとめた。