Intent.createChooser для открытия файлов pdf и epub - PullRequest
0 голосов
/ 22 февраля 2020

Мое приложение генерирует файлы PDF или EPUB, и когда создание файла завершено, мне нужно предложить пользователю открыть файл в другом приложении.

В настоящее время мое приложение может создать файл , и отображается сообщение об обмене файлом.

Проблема заключается в том, что в этом приглашении предлагается выбрать приложение для отправки файла, а мне нужно открыть файл с помощью приложения, такого как Google Play Books, или любой читатель epub. Если файл PDF, я думаю, я бы хотел увидеть onedrive или мое приложение для принтера.

Вот мой код:

    private fun openFile(fileName: String) {

        val file = File(absolutePath, fileName)
        val uri = Uri.fromFile(file).normalizeScheme()
        val mimeValue = getMimeType(uri.toString())

        val contentUri = FileProvider.getUriForFile(
            requireContext(),
            "${requireContext().packageName}.fileprovider",
            file
        )
        if (uri != null) {
            val intent = ShareCompat.IntentBuilder
                .from(requireActivity())
                .setType(mimeValue)
                .setStream(contentUri)
                .intent
            intent.data = contentUri
            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
            requireContext().startActivity(Intent.createChooser(intent, "Open file with"))
        }
    }

Thx!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...