我正在使用以下代码使用 M4A 发送带有多个附件的电子邮件(应该可以轻松转移到 Java):
Intent intent = new Intent(Intent.ActionSendMultiple);
intent.SetType("text/plain");
intent.PutExtra(Intent.ExtraText, "Mail body");
intent.PutExtra(Intent.ExtraSubject, "Mail subject");
DirectoryInfo di = new DirectoryInfo(Android.App.Application.Context.FilesDir.AbsolutePath);
List<Android.Net.Uri> fileList = new List<Android.Net.Uri>();
foreach (FileInfo file in di.GetFiles("MyAppLogFile*"))
{
Java.IO.File myFile = new Java.IO.File(file.FullName);
var uri = Android.Net.Uri.FromFile(myFile);
fileList.Add(uri);
}
if (fileList.Count > 0)
intent.PutParcelableArrayListExtra(Intent.ExtraStream, fileList.ToArray());
StartActivity(Intent.CreateChooser(intent, "Send email"));
这在 ICS 设备上运行良好,但在 Jelly Bean 上,邮件程序仍然显示附件,但它们没有被发送。由于文件来自属于应用程序的文件系统的受保护部分,我怀疑 ICS(在 Galaxy S3 上尝试过)和 JB(在 Galaxy S3 和 Galaxy Nexus 上尝试过)的权限系统可能发生了一些变化 -后者运行 JB 4.2)。
有没有人成功地在 JB 上发送带有附件的电子邮件,其中要发送的文件位于应用程序目录或其子目录中?
谢谢斯蒂芬