我正在尝试启动ACTION_GET_CONTENT意图以选择多种文件类型,包括rtf文件:
val intent = Intent(Intent.ACTION_GET_CONTENT)
intent.addCategory(Intent.CATEGORY_OPENABLE)
intent.putExtra(Intent.EXTRA_MIME_TYPES, resources.getStringArray(R.array.mime_array))
intent.type = "*/*"
startActivityForResult(intent, READ_REQUEST_CODE)
这是我可接受的MIME类型的字符串数组:
<string-array name="mime_array">
<item>application/rtf</item> <!-- .rtf -->
<item>application/x-rtf</item> <!-- .rtf -->
<item>text/richtext</item> <!-- .rtf -->
<item>application/pdf</item> <!-- .pdf -->
<item>text/plain</item> <!-- .txt -->
</string-array>
我在导航抽屉中有几个内容提供程序:
如果我选择Galaxy S6 Edge,然后转到我的下载文件夹,则rtf文件被禁用:
但是,如果我选择“驱动器”选项,则似乎会更加尊重MIME类型:
第二个Drive选项(显然会启动Drive应用,而不是本地文件选择器)也尊重MIME类型
为什么在浏览“下载”文件夹时禁用rtf文件?如何启用它?
我还尝试像这样启动意图,这导致所有文件类型都被禁用,但从云端硬盘应用程序(ref)除外:
val intent = Intent(Intent.ACTION_GET_CONTENT)
intent.addCategory(Intent.CATEGORY_OPENABLE)
intent.type = resources.getStringArray(R.array.mime_array).joinToString(",")
startActivityForResult(intent, READ_REQUEST_CODE)