4.3使用附件发送电子邮件
问题
您想要发送附有附件的电子邮件。
解
创建Intent,添加扩展数据以指定要包括的文件,并启动一个新活动以允许用户发送电子邮件。
讨论
发送电子邮件的最简单方法是创建一个类型为ACTION_SEND的Intent:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_SUBJECT,“测试单个附件”);
intent.putExtra(Intent.EXTRA_EMAIL,new String [] {recipient_address});
intent.putExtra(Intent.EXTRA_TEXT,“带附件的邮件”);
要附加单个文件,我们向Intent中添加一些扩展数据:
intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(new File(“/ path / to / file”)));
intent.setType(“text / plain”);
MIME类型始终可以设置为text / plain,但您可能需要更具体,以便解析您的邮件的应用程序可以正常工作。例如,如果你包括一个JPEG图像,你应该写图像/ jpeg。
要发送包含多个附件的电子邮件,过程稍有不同,如示例4-5所示。
首先,您需要使用Intent.ACTION_SEND_MULTIPLE,它已从Android 1.6开始提供。 第二,您需要创建一个ArrayList与您要附加到邮件的文件的URI,并调用putParcelableArrayListExtra。 如果您发送不同类型的文件,您可能想使用multipart / mixed作为MIME类型。
最后,在这两种情况下,都可以使用以下代码启动一个新的Activity:
startActivity(Intent.createChooser(intent,“Send mail”));
使用Intent.createChooser是可选的,但它将允许用户选择他最喜欢的应用程序来发送电子邮件。
问题
您想要发送附有附件的电子邮件。
解
创建Intent,添加扩展数据以指定要包括的文件,并启动一个新活动以允许用户发送电子邮件。
讨论
发送电子邮件的最简单方法是创建一个类型为ACTION_SEND的Intent:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_SUBJECT,“测试单个附件”);
intent.putExtra(Intent.EXTRA_EMAIL,new String [] {recipient_address});
intent.putExtra(Intent.EXTRA_TEXT,“带附件的邮件”);
要附加单个文件,我们向Intent中添加一些扩展数据:
intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(new File(“/ path / to / file”)));
intent.setType(“text / plain”);
MIME类型始终可以设置为text / plain,但您可能需要更具体,以便解析您的邮件的应用程序可以正常工作。例如,如果你包括一个JPEG图像,你应该写图像/ jpeg。
要发送包含多个附件的电子邮件,过程稍有不同,如示例4-5所示。
实例4-5。多个附件
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "Test multiple attachments");
intent.putExtra(Intent.EXTRA_TEXT, "Mail with multiple attachments");
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{recipient_address});
ArrayList<Uri> uris = new ArrayList<Uri>();
uris.add(Uri.fromFile(new File("/path/to/first/file")));
uris.add(Uri.fromFile(new File("/path/to/second/file")));
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
首先,您需要使用Intent.ACTION_SEND_MULTIPLE,它已从Android 1.6开始提供。 第二,您需要创建一个ArrayList与您要附加到邮件的文件的URI,并调用putParcelableArrayListExtra。 如果您发送不同类型的文件,您可能想使用multipart / mixed作为MIME类型。
最后,在这两种情况下,都可以使用以下代码启动一个新的Activity:
startActivity(Intent.createChooser(intent,“Send mail”));
使用Intent.createChooser是可选的,但它将允许用户选择他最喜欢的应用程序来发送电子邮件。