小编典典

如何在棉花糖中将URI转换为真实路径?

java

我有一个图像URI,我想将此URI转换为真实路径。我看了很多答案,但没有一个对我有用。我正在使用棉花糖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 .
    }

    }

阅读 265

收藏
2020-11-30

共1个答案

小编典典

A Uri不是File。A Uri不必代表您可以访问的文件系统上的文件。将Uri可能指向的内容是:

  • 存储在无法访问的可移动存储中
  • 存储在另一个应用程序的内部存储中,您无法访问
  • 以加密形式存储,ContentProvider需要解密时
  • 存储在SQLite数据库的BLOB列中,ContentProvider需要将其加载并提供服务
  • 存储在“云”中,ContentProvider需要下载
  • 即时生成的网页的方式
  • 等等

您可以使用ContentResolveropenInputStream()获取InputStream所代表的内容Uri。您可以FileOutputStream在自己控制的某个文件上创建一个。而且,您可以使用Java
I / O从InputStream到进行复制OutputStream,从而在您控制的文件中创建内容的自己的副本。

2020-11-30