我正在尝试发送一封电子邮件,其中包含应用程序生成并保存在手机文档文件夹(/storage/emulated/0/Documents/)中的 pdf,我的代码没有给出错误,但当应用程序打开 Gmail 时,我收到带有 gmail 徽标的吐司显示无法附加文件。
在 pdf() 函数中,我创建了从 send() 函数获取的 pdf 文件,这是我处理电子邮件主题、电子邮件文本和收件人电子邮件的所有意图的地方
private fun envio(nombre :String) {
val direcciones = arrayOf(binding.etEnvio.text.toString())
val asunto = "Prueba intent implícito"
val texto = "Este es un mensaje de prueba que queremos enviar"
Log.d("ENVIO", "intento enviar el pdf")
// Ruta del archivo PDF que has guardado
val pdfFile = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "$nombre.pdf")
val pdfPath = pdfFile.toString().trim()
Log.d("ENVIO", "RUTA: $pdfPath")
val intent = Intent(Intent.ACTION_SENDTO)
intent.data = Uri.parse("mailto:")
intent.putExtra(Intent.EXTRA_EMAIL, direcciones)
intent.putExtra(Intent.EXTRA_SUBJECT, asunto)
intent.putExtra(Intent.EXTRA_TEXT, texto)
// Adjuntar el archivo PDF
val pdfUri = FileProvider.getUriForFile(this, "com.example.appcamara.fileprovider", File(pdfPath))
intent.putExtra(Intent.EXTRA_STREAM, pdfUri)
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
startActivity(Intent.createChooser(intent, "Elige cliente de correo:"))
}
在我的 AndroidManifest 中,我拥有以下权限:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.example.appcamara.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
我为我的
File_Provider
添加了这条路径:
<external-files-path name="documents" path="Documents/" />
还是不行
答案就在评论里
虽然不清楚到底有什么帮助。