将数据作为附件发送到电子邮件而不将其保存在SD卡上

时间:2012-12-29 08:54:04

标签: android file email vcard

我正在处理一个应用程序,我将.vcf个文件作为附件通过我的应用程序发送到电子邮件,

我使用以下代码来实现这一目标,

try {
path = Environment.getExternalStorageDirectory().toString()+ File.separator +vfile;
FileOutputStream mFileOutputStream = new FileOutputStream(path, true);
     mFileOutputStream.write(vCardString.toString().getBytes());
File filevcf = new File(path);
Log.d("file", "file" + filevcf);
} catch (Exception e4) {
Log.d("File", "File Error-->>" + e4);}

我正在使用以下代码将此.vcf文件发送到使用默认电子邮件应用程序的电子邮件。

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("vnd.android.cursor.dir/email");
String to[] = "asd@gmail.com";
sharingIntent.putExtra(Intent.EXTRA_EMAIL, to);
sharingIntent.putExtra(Intent.EXTRA_STREAM,  Uri.parse(path));
sharingIntent.putExtra(Intent.EXTRA_SUBJECT, "subject");
startActivity(Intent.createChooser(sharingIntent, "Send email"));

在这种情况下,我必须将联系人作为.vcf文件存储在SD卡上,然后我才能将其发送到电子邮件。万一,设备中没有SD卡,它会引发抢劫。

我希望应用程序能够发送.vcf文件,即使设备中没有SD卡也是如此。有没有办法做到这一点,或者有没有办法将此.vcf文件存储在其他地方,然后发送它。

1 个答案:

答案 0 :(得分:2)

您可以使用内部存储来存储.vcf文件,并且可以在服务器响应正常后删除。