允许用户选择文件并阅读

时间:2016-12-10 14:48:55

标签: android

我正在尝试创建一个应用,用户可以在其中浏览手机上的文件并选择一个。然后我想打开所选文件并阅读它。这听起来很简单,但我被卡住了。这是我用来允许用户选择文件的代码:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
//intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("file/*");
startActivityForResult(intent,1);

我不明白为什么,当我执行此代码时,我可以浏览我的下载文件夹中的文件(在我的手机上),但我无法选择其中的任何内容。我在清单中拥有所有必需的权限,但它仍然无效。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

当您在setType()上呼叫Intent时,您需要提供有效的MIME类型或MIME类型模式。没有以file/开头的正式MIME类型,因此MIME类型模式file/*不太可能与任何内容匹配。

  

但我只希望用户打开.txt文件

您无法通过文件扩展名过滤ACTION_GET_CONTENT,因为不必是文件扩展名,甚至是文件名。您可以做的是对MIME类型进行过滤,纯文本的MIME类型为text/plain。如果您想支持其他类型的文本(例如,HTML),则可以使用text/*的MIME类型模式。