如何从Android Q中的contentResolver.openFileDescriptor(Uri uri,String s)获取媒体项real_Path?

Ali*_*aza 7 android file-descriptor mediastore android-contentresolver

在API级别Q中不推荐使用MediaStore.MediaColumns.DATA常量。

应用程序可能没有文件系统权限来直接访问此路径。应用程序不应尝试直接打开此路径,而应使用ContentResolver#openFileDescriptor(Uri,String)获得访问权限。对于定位到Build.VERSION_CODES.Q或更高版本的应用,此值始终为NULL。

cuz*_*uzi 1

我相信这是不可能的,因为从编程的角度来看,您根本不需要该路径。

您无法读取/更改/删除具有真实路径的文件。您应该使用 ContentResolver 来执行问题中所述的这些操作。

如果您只想向用户显示路径,那么我建议提供一个选项来使用 Intent.createChooser 打开/共享文件,或者仅显示MediaColumns.RELATIVE_PATH