gpt4 book ai didi

android - 如何为多种类型的文件(pdf、office、图像、文本)设置 android Intent 并返回路径?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:07 26 4
gpt4 key购买 nike

我是 intents 的新手,我正在尝试弄清楚如何使用 parse(URI) 和/或 setType() 来打开正确类型的应用程序并允许我选择内容。

我想从我的应用程序中启动一个 Intent,允许用户从多种类型的文件(.PDF.DOCX。 XLSX, .PPTX, .DOC, .JPG, .PNG, . TXT.LOG 等)。我需要 Activity 返回的是该文件的完整路径。

现在我正在将 setType("*/*") 与我在此处找到的选择器一起使用,但这会在 Android 中自动打开一些文档选择器。我有文件管理器和其他应用程序,想知道标准 setType 是什么或 MIME 类型。提前致谢。

另外,如果这个问题已经得到解答,我深表歉意。我在网上看过,但认为我在搜索错误的东西,因为我得到的结果是针对只想要其中之一或不返回路径的 Intent 。

我的适用代码如下:(注意:这是在 fragment 内完成的)

static final int PICK_FILE_REQUEST = 101;

private String pathToFile = "";

public String selectFile() {
String path = "";
Intent intent = new Intent(Intent.ACTION_GET_CONTENT), chooser = null;
intent.setType("*/*");
chooser = Intent.createChooser(intent, "Find file to Print");
startActivityForResult(chooser, PICK_FILE_REQUEST);
path = pathToFile;
return path;
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == PICK_FILE_REQUEST){
if(resultCode == Activity.RESULT_OK){
pathToFile = data.getDataString();
String temp = data.getStringExtra("path");
Log.d("Files Fragment: ", pathToFile);
Log.d("Files Fragment: ", temp);
}
}
}

最佳答案

我有一个类似的问题,并花了至少 15 分钟来寻找一个示例,该示例说明如何实际编码对 EXTRA_MIME_TYPES 的支持

幸运的是我确实找到了一个例子 http://android-er.blogspot.co.uk/2015/09/open-multi-files-using.html ,尝试过,测试过,它似乎适用于我的用例,它能够找到并加载两个相似但不相同的 mime 类型(无论出于何种奇怪的原因,同一个 csv 文件具有一个 mime 类型如果我通过 USB 将其复制到设备,如果我从 Google 云端硬盘下载它则将其复制到另一个设备)。这是我的代码 fragment 。大概您会在字符串数组中添加更多 mime 类型以满足您的需要。

public void findReviewsToLoad() {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
String [] mimeTypes = {"text/csv", "text/comma-separated-values"};
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
startActivityForResult(intent, FIND_FILE_REQUEST_CODE);
}

关于android - 如何为多种类型的文件(pdf、office、图像、文本)设置 android Intent 并返回路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27367272/

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