Как запустить намерение ACTION_GET_CONTENT для выбора файлов rtf? - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь запустить намерение 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>

У меня есть несколько поставщиков контента, доступных в навигационной панели:

Content providers in navigation drawer

Если я выберу Galaxy S6 Edge, перейдите в папку «Загрузки», файл rtf будетотключено:

Files in Downloads folder

Похоже, что дополнительные типы MIME, если я выберу опцию Drive, однако:

Files in Drive

Второй вариант Drive (который, по-видимому, запускает приложение Drive в отличие от локального средства выбора файлов) также учитывает дополнительные типы MIME

Files in Drive app

Почему файл rtf отключается при просмотре папки «Загрузки»?Как мне включить его?

Я также попытался запустить намерение, например, так, что все типы файлов были отключены, кроме как из приложения Drive ( 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)
...