【问题标题】:Android send mail with PDF fileAndroid 发送带有 PDF 文件的邮件
【发布时间】:2014-10-10 15:49:10
【问题描述】:

我正在尝试发送位于设备文件夹中的 PDF 文件。文件被选中并发送,但它是空的。我哪里错了?

String inviare = n_fr.getText().toString();
Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), getString(R.string.app_name)+"/"+"Folder_"+anno+"/"+"file_"+inviare+".pdf")); 

            Intent sendEmail= new Intent(Intent.ACTION_SEND);
                   sendEmail.setType("application/pdf");
                   sendEmail.putExtra(Intent.EXTRA_SUBJECT, filename);                         
                   sendEmail.putExtra(Intent.EXTRA_STREAM, uri);
            startActivity(Intent.createChooser(sendEmail, "Invia PDF"));

【问题讨论】:

    标签: android file email pdf send


    【解决方案1】:
    • 确保您已在清单中启用 android.permission.WRITE_EXTERNAL_STORAGEandroid.permission.READ_EXTERNAL_STORAGE 权限

    • 检查 uri 是否解析为实际文件,并尝试在该代码块中记录文件内容 (Log.d),以确保文件内容实际可读。

      李>

    【讨论】:

    • 您的第一个项目符号不正确。引用the documentation for ACTION_SEND:“getType() 是正在发送的数据的 MIME 类型。get*Extra 可以有一个 EXTRA_TEXT 或 EXTRA_STREAM 字段,包含要发送的数据。如果使用 EXTRA_TEXT,MIME 类型应该是“text/ plain";否则应该是EXTRA_STREAM中数据的MIME类型。"
    • 你当然是对的!谢谢你的正确。我已经删除了要点,但为了完整起见,我将在此处对其进行解释(并且因为这是一个容易犯的错误!)。不正确的建议是:不要使用 sendEmail.setType("application/pdf")。类型是指电子邮件的类型,通常是文本或 html。您可以直接省略该行。
    猜你喜欢
    • 2014-10-19
    • 2013-01-22
    • 1970-01-01
    • 2015-02-10
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    相关资源
    最近更新 更多