Открыть файл с расширением ".msg", через Intent
В android приложение подгружаются файлы с различными расширениями, это картинки, документы MS Office (Word, Excel), PDF и т.д.
Все они открываются прекрасно этой функцией:
private fun sendIntentForFileInAssets(fileName: String) {
val file = fileFromAsset(fileName)
val uri = getUri(file)
val mimeType = contentResolver.getType(uri) ?: "*/*"
val intent = Intent(Intent.ACTION_VIEW).apply {
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
setDataAndType(uri, mimeType)
}
try {
startActivity(intent)
} catch (e: ActivityNotFoundException) {
e.printStackTrace()
Toast.makeText(
this,
"Не удалось найти приложение для открытия файла с расширением [.${file.extension}]" +
"\n MimeType = [$mimeType]",
Toast.LENGTH_LONG
).show()
}
}
Исключение только файл с расширением ".msg", т.е. письмо из Outlook.
Для него ContentResolver возвращает тип: "application/octet-stream", хотя судя по старым ответам на StackOverflow MimeType должен быть "application/vnd.ms-outlook".
Но "application/vnd.ms-outlook" пропал из полного списка MimeType
Как открыть файл ".msg" из android приложения?
Ответы (1 шт):
Спасибо, DrMcSheen!
Я пытался открыть файл-письмо именно через мобильную версию Outlook.
Но если даже загуглить, чем открыть msg на Android вываливает кучу приложений, но среди них нет Outlook, что забавно.
К примеру, Open Letter справляется с этой задачей хорошо.
После установки этого приложения функция начинает работать как надо, предлагая открыть файл в приложении.