问题描述
我在缓存中有一个已验证的文件确实存在(我可以读取并打印出该文件)。在此特定情况下,它是一个.csv文件。我可以显示选择器用户界面,但是文件永远不会附加到电子邮件中。谁能发现我所缺少的东西?我现在已经尝试了几件事,但是看不到有什么问题。
val file = File(parentContext.cacheDir,fileName)
Timber.i("Sharing file of size: ${file.length()}")
val fileURI = FileProvider.getUriForFile(parentContext.applicationContext,parentContext.packageName + ".provider",file)
Timber.i("The fileURI path is: ${fileURI.path}")
val intent = Intent(Intent.ACTION_SEND)
intent.putExtra(Intent.EXTRA_SUBJECT,"Share of $fileName")
intent.type = URLConnection.guessContentTypeFromName(fileName)
intent.data = fileURI
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
startActivity(parentContext,Intent.createChooser(intent,"Share File"),null)
Timber行的输出为: 共享文件大小:1719和 fileURI路径为:/cache/myfilename-10-30-2020.csv,因此看起来正确。选择电子邮件时,我会填写电子邮件的主题,但没有附件。
解决方法
替换:
intent.data = fileURI
具有:
intent.putExtra(Intent.EXTRA_STREAM,fileURI)