【问题标题】:Android Intent: Send an email with attachmentAndroid Intent:发送带有附件的电子邮件
【发布时间】:2012-03-24 03:49:19
【问题描述】:

我想通过电子邮件发送多个文件。我找到了这个 Android multiple email attachments using Intent 但它确实有效,我没有收到任何错误消息。它只是不附加文件(我也尝试只发送一个文件,但我得到了相同的结果)。

我是否监督了什么?你有什么建议吗?

private static void email (Context context, String emailTo, String emailCC, 
    String subject, String emailText, List<String> filePaths)
{
    //need to "send multiple" to get more than one attachment
    final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
    emailIntent.setType("text/xml");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, 
        new String[]{emailTo});
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailText);
    //has to be an ArrayList
    ArrayList<Uri> uris = new ArrayList<Uri>();
    //convert from paths to Android friendly Parcelable Uri's
    for (String file : filePaths)
    {
        File fileIn = new File(file);
      //  Uri u = Uri.fromFile(fileIn);
        Uri u = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "blabla.xml"));
        Log.v("bla", "filepath: " +u.toString());
        uris.add(u);
        Uri b = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "blabla.es"));
        uris.add(b);
        Log.v("bla", "filepath: " +b.toString());
    }
    emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
    context.startActivity(emailIntent);
}

LogCat:

03-06 16:08:50.940: INFO/ActivityManager(69): Starting: Intent { act=android.intent.action.SEND_MULTIPLE typ=text/xml cmp=com.android.email/.activity.MessageCompose (has extras) } from pid 436
03-06 16:08:52.130: INFO/ActivityManager(69): Displayed com.android.email/.activity.MessageCompose: +1s118ms
03-06 16:08:52.470: WARN/IInputConnectionWrapper(436): showStatusIcon on inactive InputConnection

【问题讨论】:

  • 很明显,但是,您确定您的文件路径正确并指向实际文件吗?
  • 大多数电子邮件程序将无法处理text/xml MIME 类型。此外,大多数用户无法阅读 XML。请考虑改用text/plaintext/html 电子邮件散文。

标签: android email android-intent attachment


【解决方案1】:

此代码对我有用。 pdfFiles 的类型为ArrayList&lt;Uri&gt;

            Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
            shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, getText(R.string.share_subject));
            CharSequence seq = Html.fromHtml(mOCRText.toString());
            shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, seq);
            shareIntent.setType("application/pdf");

            shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, pdfFiles);
            startActivity(Intent.createChooser(shareIntent, getText(R.string.share_chooser_title)));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 2015-08-28
    相关资源
    最近更新 更多