4

我正在使用以下代码使用 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 上发送带有附件的电子邮件,其中要发送的文件位于应用程序目录或其子目录中?

谢谢斯蒂芬

4

0 回答 0