gpt4 book ai didi

java - ACTION_GET_CONTENT 给出了错误的路径

转载 作者:行者123 更新时间:2023-11-29 03:04:56 25 4
gpt4 key购买 nike

我正在使用 ACTION_GET_CONTENT,以便用户可以选择我的其余代码可以读取和处理的文本文件。

Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("text/*");
startActivityForResult(Intent.createChooser(intent, "select data"), SELECT_DATA);

上面是我的代码,以便用户可以浏览哪个工作正常。

Uri DataUri = data.getData();
File FileUri = new File(DataUri.getPath());

如果我在使用 getPath 或 getAbsolutePath 后将 DataUri 或 FileUri 转换为字符串,我会得到一个完全错误的路径。

路径应该是/storage/emulated/0/Documents/myFile 但它给了我/document/primary:Documents/myFile。我不知道这个“primary:Documents”是什么东西。

intent本身的数据已经有错误的路径,有什么建议吗?

最佳答案

I'm using ACTION_GET_CONTENT so that the user can select text files

不,您正在使用 ACTION_GET_CONTENT,以便用户可以选择一些 MIME 类型为 text/* 的内容。内容的来源在很大程度上取决于用户。它可能是也可能不是文件系统上的文件,如果是,则可能是也可能不是您可以直接访问的文件(例如,Dropbox 应用程序的内部存储、Android 4.4+ 设备上可移动存储上的文件) ).

The path should be /storage/emulated/0/Documents/myFile

不,不应该。

but it gives me /document/primary:Documents/myFile

您获得的内容因处理 ACTION_GET_CONTENT 请求的 Activity 而异。该 Activity 是什么将取决于用户安装的支持 ACTION_GET_CONTENT 的内容以及用户从已安装内容列表中选择的内容。

通常,您会得到一个content Uri(即,Uri 上的getScheme() 将返回content),因为 Uri 将指向由 ContentProvider 提供的数据。

The data from the intent itself already has the wrong path

它有正确的路径。它根本不是文件系统上的路径。

any suggestions?

使用 ContentResolveropenInputStream()content 表示的内容获取 InputStream URI

关于java - ACTION_GET_CONTENT 给出了错误的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32594272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com