我有一个从媒体存储图像选择返回的onActivityResult,我可以使用以下命令获取图像的URI:
Uri selectedImage = data.getData();将其转换为字符串将得到以下结果:
content://media/external/images/media/47或指向给定的路径:
/external/images/media/47然而,我似乎找不到一种方法来将其转换为绝对路径,因为我想将图像加载到位图中,而不必将其复制到其他地方。我知道这可以使用URI和内容解析器来完成,但这似乎在重启手机时中断了,我猜MediaStore在重启之间不会保持相同的编号。
发布于 2018-06-08 00:46:55
作为一个附加组件,如果您需要在尝试打开输入流之前查看文件是否存在,则可以使用DocumentsContract。
(Kotlin代码)
var iStream = null
if(DocumentsContract.isDocumentUri(context,myUri)) {
val pfd: ParcelFileDescriptor? = context.contentResolver.openFileDescriptor(
myUri, "r") ?: return null
iStream = ParcelFileDescriptor.AutoCloseInputStream(pfd)
}https://stackoverflow.com/questions/3401579
复制相似问题