在 Android 中使用 Kotlin 发送带有文件附件的电子邮件

问题描述 投票:0回答:1

我正在尝试发送一封电子邮件,其中包含应用程序生成并保存在手机文档文件夹(/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/" />

还是不行

android kotlin email pdf gmail
1个回答
0
投票

答案就在评论里

虽然不清楚到底有什么帮助。

© www.soinside.com 2019 - 2024. All rights reserved.