【发布时间】:2012-05-17 03:00:18
【问题描述】:
我的应用程序使用 intent 方法向用户发送电子邮件,作为导出 Excel 电子表格数据(由JExcell API 创建)的便捷方式。
文件包含在 SD 卡中名为 records 的文件夹中。
我尝试发送的文件是调用 measurments.xls。
在发送之前,我已经在代码中测试了文件是否存在。电子邮件编辑器显示一个附件,但是当我发送然后接收电子邮件时,附件不存在。
但是,如果我将 excel 文件替换为 png 图像,则会收到附件。那是什么给的??
下面是我用来发送电子邮件的代码,它本身就是一个类中的参数化静态方法。
public static void sendEmailWithAttachment(Context ctx, String to,String subject, String message, String fileAndLocation)
{
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/plain");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {to});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
File file = new File(fileAndLocation);
// File file = getFileStreamPath();
if (file.exists())
{
Log.v("Farmgraze", "Email file_exists!" );
}
else
{
Log.v("Farmgraze", "Email file does not exist!" );
}
Log.v("FarmGraze", "SEND EMAIL FileUri=" + Uri.parse("file:/"+ fileAndLocation));
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:/"+ fileAndLocation));
ctx.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
}//end method
那么我需要做什么才能接收 xls 文件?更改方法代码第二行中的 mime 类型?如果有怎么办。任何有用的建议将不胜感激。
感谢阅读。
A.
【问题讨论】:
-
您确定发送/接收邮件服务器不会删除某些附件吗?尝试将其发送到/从 gmail 帐户发送。我想更改 MIME 类型可能会有所帮助,但更可能是邮件服务器。
-
嗯,不知道这是否有区别,但我通常会看到带有两个斜杠
file://的file:/。试试看。 -
@Chuck Norris 我已经通过 GMail 网络应用程序将文件发送到我的工作电子邮件并且文件已通过,因此我们可以排除这种情况。
-
@Gophermofur 我有一个斜线,因为 fileAndLocation 字符串包含另一个作为其第一个字符。
标签: android email attachment excellibrary