gpt4 book ai didi

java - Android - 将 TXT 文件作为电子邮件附件发送失败 ("Couldn' t 发送附件")

转载 作者:太空宇宙 更新时间:2023-11-03 12:37:18 25 4
gpt4 key购买 nike

我试图让我的 Android 应用程序发送一封带有附件的电子邮件,我从一个 .txt 文件开始,因为这些很简单。

到目前为止我有这个(发生在 fragment 内):

//Send the email
Intent mailIntent = new Intent(Intent.ACTION_SEND);
mailIntent.setType("text/Message");
mailIntent.putExtra(Intent.EXTRA_EMAIL , new String[]{address});
mailIntent.putExtra(Intent.EXTRA_SUBJECT, "Test Email");
mailIntent.putExtra(Intent.EXTRA_TEXT , "Hi! This is a test!");

//Deal with the attached report
String FileName = "report.txt";
Calculator.generateReport(getActivity().getApplicationContext(), FileName);
//It will be called "report.txt"
File attachment = getActivity().getApplicationContext().getFileStreamPath(FileName);
if (!attachment.exists() || !attachment.canRead()) {
Toast.makeText(getActivity().getApplicationContext(),
"Attachment Error",
Toast.LENGTH_SHORT).show();
System.out.println("ATTACHMENT ERROR");
}
else
{
Uri uri = Uri.fromFile(attachment);
mailIntent.putExtra(Intent.EXTRA_STREAM, uri);
}

//Send, if valid!
try {
startActivity(Intent.createChooser(mailIntent, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(getActivity().getApplicationContext(),
"There are no email clients installed.",
Toast.LENGTH_SHORT).show();
}

不幸的是,这似乎行不通。现在我知道文件存在;如果我在 generateReport() 之后插入适当的代码,我就可以找到并访问该文件并读取其内容。它就在那里,我有正确的名字。

当我可以选择电子邮件客户端时,我选择了 Gmail 并看到确实有一个 report.txt 文件附加到电子邮件。但是,当我发送电子邮件时,我收到一条通知,指出“无法发送附件”,并且电子邮件到达时没有任何附件。

我应该指出,我也尝试过其他 Intent 类型,例如 text/plainmessage/rfc822,但都无济于事。

关于我可能做错了什么有什么想法吗?

最佳答案

如果您将文件保存为应用程序的私有(private)文件,应用程序可以查看是否正常,但外部电子邮件客户端将无法看到它。

您需要将其写出到外部存储,或将其公开。

使用http://developer.android.com/reference/android/content/Context.html#MODE_WORLD_READABLEhttp://developer.android.com/guide/topics/data/data-storage.html

关于java - Android - 将 TXT 文件作为电子邮件附件发送失败 ("Couldn' t 发送附件"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15961409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com