【发布时间】:2017-12-07 17:29:51
【问题描述】:
我在尝试发送带有附件的电子邮件时遇到了这个错误。有什么帮助吗?谢谢你
****从 Activity 上下文之外调用 startActivity() 需要 FLAG_ACTIVITY_NEW_TASK 标志。这真的是你想要的吗?****
这是我的代码:
[assembly: Dependency(typeof(sendEmail))]
namespace myapp.Droid
{
public class sendEmail : IEmailTask
{
public sendEmail()
{
}
public void SendEmail ()
{
var sqlliteFilname = "test.3gpp";
string documentsPath = System.Environment.GetFolderPath(
Environment.SpecialFolder.Personal);
var stringPath = Path.Combine(documentsPath, sqlliteFilname);
var path = Android.Net.Uri.FromFile(new
Java.IO.File(stringPath));
Intent emailIntent = new Intent(Intent.ActionSend);
// set the type to 'email'
emailIntent.SetData(Android.Net.Uri.Parse("mailto:"));
String[] to = { "youremail@mail.com" };
emailIntent.PutExtra(Intent.ExtraEmail, to);
// the attachment
emailIntent.PutExtra(Intent.ExtraStream, path);
// the mail subject
emailIntent.PutExtra(Intent.ExtraSubject, "Subject");
Android.App.Application.Context.StartActivity(Intent.CreateChooser(emailIntent, "Send email..."));
}
}
}
页面上的代码是:
void btnSendingHandle_Clicked(object sender, System.EventArgs e)
{
var getEmail = DependencyService.Get<IEmailTask>();
getEmail.SendEmail();
}
【问题讨论】:
-
由于这是一个表单应用程序,我会尝试将您的上下文更改为
Forms.Context.StartActivity (Intent.CreateChooser(emailIntent, "Send email..."));
标签: android forms xamarin dependencies email-attachments