我有一个图像URI,我想将此URI转换为真实路径。我看了很多答案,但没有一个对我有用。我正在使用棉花糖6.0.1。图片URI为content://com.android.providers.media.documents/document/image%3A52530。
content://com.android.providers.media.documents/document/image%3A52530
码:
sendImageFromFolder.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(); intent.setType("image/*"); intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1); } }); protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==1) { Uri uri = data.getData();//how to convert this uri to real path . } }
A Uri不是File。A Uri不必代表您可以访问的文件系统上的文件。将Uri可能指向的内容是:
Uri
File
ContentProvider
您可以使用ContentResolver和openInputStream()获取InputStream所代表的内容Uri。您可以FileOutputStream在自己控制的某个文件上创建一个。而且,您可以使用Java I / O从InputStream到进行复制OutputStream,从而在您控制的文件中创建内容的自己的副本。
ContentResolver
openInputStream()
InputStream
FileOutputStream
OutputStream