我正在尝试创建一个应用,用户可以在其中浏览手机上的文件并选择一个。然后我想打开所选文件并阅读它。这听起来很简单,但我被卡住了。这是我用来允许用户选择文件的代码:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
//intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("file/*");
startActivityForResult(intent,1);
我不明白为什么,当我执行此代码时,我可以浏览我的下载文件夹中的文件(在我的手机上),但我无法选择其中的任何内容。我在清单中拥有所有必需的权限,但它仍然无效。有什么想法吗?
答案 0 :(得分:1)
当您在setType()
上呼叫Intent
时,您需要提供有效的MIME类型或MIME类型模式。没有以file/
开头的正式MIME类型,因此MIME类型模式file/*
不太可能与任何内容匹配。
但我只希望用户打开.txt文件
您无法通过文件扩展名过滤ACTION_GET_CONTENT
,因为不必是文件扩展名,甚至是文件名。您可以做的是对MIME类型进行过滤,纯文本的MIME类型为text/plain
。如果您想支持其他类型的文本(例如,HTML),则可以使用text/*
的MIME类型模式。