当前位置: 首页 > 面试题库 >

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

勾通
2023-03-14
问题内容

我有一个图像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 .
    }

    }

问题答案:

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

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

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



 类似资料:
  • 问题内容: 我在Android 6.0(棉花糖)上遇到了日期格式问题。引发以下异常的代码是我的应用程序用于API请求(“客户端”)的纯Java库(单独构建)。如果相关的话,该库是用Java 1.6构建的……无论如何,这是代码。 … 具有价值; …“修剪”之后是; 该代码自Froyo成立以来一直有效,并且已经过单元测试。除了棉花糖,所有东西都会抛出异常。 偏移量“ 21”是10:59中“ 9”之后的

  • 问题内容: 我正在创建一个可产生现场乐器声音的应用程序,并且计划使用Android棉花糖(6.0版)中的新Midi API。我已经在http://developer.android.com/reference/android/media/midi/package- summary.html上 阅读了软件包概述文档,并且我知道如何生成Midi笔记,但是我仍然不确定:我该怎么办在生成它们的Midi数据

  • 我有一个应用程序,可以用相机拍摄视频。我可以获取视频的文件路径,但我需要它作为Uri。 我得到的文件路径: 我需要的是这样的: 这是我的密码。 我需要一个Uri从字符串变量。

  • 问题内容: 我有一个curl命令,用于elasticsearch聚合,如下所示。 我想在浏览器中将以上这些卷曲搜索到我的htmlpage中,如何将其转换为类似Elasticsearch中URI搜索的普通url? 请帮助我将上面的内容转换为url吗? 问题答案: 您可以使用查询字符串参数,以便直接在URL中传递正文

  • 我在尝试选择文件时获得URI: /外部/文件/15499 我如何将它转换成真实的文件路径? 注意:我阅读了以下主题: null

  • 我尝试了一个可以正常工作的解决方案(见下文),除了在Android 4.4中调用会带来一个名为“从”打开的活动,其中有“最近”、“图像”、“下载”以及几个应用程序可供选择。当我选择图像并尝试解析返回的内容URI(使用下面的代码)时,调用返回null。如果我使用库应用程序选择完全相同的文件,返回文件路径。我只在API级别16和19中测试过这个。一切工作在16预期。至于19去,我必须选择画廊或其他应用