我有一个图片URI,我想将此URI转换为真实路径。我看了很多答案,但没有一个对我有用。我使用的是marshmallow 6.0.1。图片URI为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 .
}
}
答案 0 :(得分:2)
Uri
不是File
。 Uri
不必表示您可以访问的文件系统上的文件。 Uri
可能指向以下内容:
ContentProvider
需要解密ContentProvider
需要加载并提供它ContentProvider
需要下载您可以使用ContentResolver
和openInputStream()
获取InputStream
所代表内容的Uri
。您可以在您控制的某个文件上创建FileOutputStream
。并且,您可以使用Java I / O从InputStream
复制到OutputStream
,在您控制的文件中创建自己的内容副本。