How To Convert Uri To Real Path In Marshmallow?
I have an image URI and I want to convert this URI to a real path. I've looked at lot of of answers but none worked for me. I'm using marshmallow 6.0.1. The image URI is content://
Solution 1:
A Uri
is not a File
. A Uri
does not have to represent a file on the filesystem that you can access. The Uri
might point to content that is:
- stored on removable storage, which you cannot access
- stored on internal storage of another app, which you cannot access
- stored in an encrypted form, where a
ContentProvider
needs to decrypt it - stored in a BLOB column of a SQLite database, where a
ContentProvider
needs to load it and serve it - stored in "the cloud", where a
ContentProvider
needs to download it - generated on the fly, the way this Web page is
- and so on
You can use ContentResolver
and openInputStream()
to get an InputStream
on the content represented by the Uri
. You can create a FileOutputStream
on some file that you control. And, you can use Java I/O to copy from the InputStream
to the OutputStream
, making your own copy of the content in a file that you control.
Post a Comment for "How To Convert Uri To Real Path In Marshmallow?"