public virtual Task ComposeEmail(IEmailMessage emailMessage) { if (!CanComposeEmail) { throw new FeatureNotAvailableException(); } var intent = new Intent(Intent.ActionSend); intent.PutExtra(Intent.ExtraEmail, emailMessage.To.Select(x => x.Address).ToArray()); intent.PutExtra(Intent.ExtraCc, emailMessage.Cc.Select(x => x.Address).ToArray()); intent.PutExtra(Intent.ExtraBcc, emailMessage.Bcc.Select(x => x.Address).ToArray()); intent.PutExtra(Intent.ExtraTitle, emailMessage.Subject); if (emailMessage.IsHTML) { intent.PutExtra(Intent.ExtraText, Html.FromHtml(emailMessage.Body)); } else { intent.PutExtra(Intent.ExtraText, emailMessage.Body); } intent.SetType("message/rfc822"); intent.StartNewActivity(); return Task.FromResult(true); }
public void SendEmail(IEmailMessage email) { // NOTE: http://developer.xamarin.com/recipes/android/networking/email/send_an_email/ if (email == null) throw new ArgumentNullException("email"); if (CanSendEmail) { // NOTE: http://developer.android.com/guide/components/intents-common.html#Email string intentAction = Intent.ActionSend; if (email.Attachments.Count > 1) intentAction = Intent.ActionSendMultiple; Intent emailIntent = new Intent(intentAction); emailIntent.SetType("message/rfc822"); if (email.Recipients.Count > 0) emailIntent.PutExtra(Intent.ExtraEmail, email.Recipients.ToArray()); if (email.RecipientsCc.Count > 0) emailIntent.PutExtra(Intent.ExtraCc, email.RecipientsCc.ToArray()); if (email.RecipientsBcc.Count > 0) emailIntent.PutExtra(Intent.ExtraBcc, email.RecipientsBcc.ToArray()); emailIntent.PutExtra(Intent.ExtraSubject, email.Subject); // NOTE: http://stackoverflow.com/questions/13756200/send-html-email-with-gmail-4-2-1 if (((EmailMessage)email).IsHtml) emailIntent.PutExtra(Intent.ExtraText, Html.FromHtml(email.Message)); else emailIntent.PutExtra(Intent.ExtraText, email.Message); if (email.Attachments.Count > 0) { var uris = new List<IParcelable>(); foreach (var attachment in email.Attachments) { var uri = Android.Net.Uri.Parse("file://" + ((EmailAttachment)attachment).FilePath); uris.Add(uri); } if (uris.Count > 1) emailIntent.PutParcelableArrayListExtra(Intent.ExtraStream, uris); else emailIntent.PutExtra(Intent.ExtraStream, uris[0]); } emailIntent.StartNewActivity(); } }
public void MakePhoneCall(string number, string name = null) { if (string.IsNullOrWhiteSpace(number)) throw new ArgumentException("number"); if (CanMakePhoneCall) { var phoneNumber = PhoneNumberUtils.FormatNumber(number); Uri telUri = Uri.Parse("tel:" + phoneNumber); var dialIntent = new Intent(Intent.ActionDial, telUri); dialIntent.StartNewActivity(); } }
public virtual Task ComposeSMS(string recipient, string message = null) { if (!CanComposeSMS) { throw new FeatureNotAvailableException(); } var uri = Uri.Parse(string.Format("sms:{0}", recipient)); var intent = new Intent(Intent.ActionSendto, uri); intent.PutExtra("sms_body", message ?? string.Empty); intent.StartNewActivity(); return Task.FromResult(true); }
public void SendSms(string recipient, string message) { if (string.IsNullOrWhiteSpace(recipient)) throw new ArgumentNullException("recipient"); if (string.IsNullOrWhiteSpace(message)) throw new ArgumentNullException("message"); if (CanSendSms) { var smsUri = Uri.Parse("smsto:" + recipient); var smsIntent = new Intent(Intent.ActionSendto, smsUri); smsIntent.PutExtra("sms_body", message); smsIntent.StartNewActivity(); } }
public void SendSms(string recipient = null, string message = null) { message = message ?? string.Empty; if (CanSendSms) { Uri smsUri; if (!string.IsNullOrWhiteSpace(recipient)) smsUri = Uri.Parse("smsto:" + recipient); else smsUri = Uri.Parse("smsto:"); var smsIntent = new Intent(Intent.ActionSendto, smsUri); smsIntent.PutExtra("sms_body", message); smsIntent.StartNewActivity(); } }
public void SendEmail(IEmailMessage email) { // NOTE: http://developer.xamarin.com/recipes/android/networking/email/send_an_email/ if (email == null) throw new ArgumentNullException("email"); if (email.Attachments.Count > 1) throw new NotSupportedException("Cannot send more than once attachment for Android"); if (CanSendEmail) { Intent emailIntent = new Intent(Intent.ActionSend); emailIntent.SetType("message/rfc822"); if (email.Recipients.Count > 0) emailIntent.PutExtra(Intent.ExtraEmail, email.Recipients.ToArray()); if (email.RecipientsCc.Count > 0) emailIntent.PutExtra(Intent.ExtraCc, email.RecipientsCc.ToArray()); if (email.RecipientsBcc.Count > 0) emailIntent.PutExtra(Intent.ExtraBcc, email.RecipientsBcc.ToArray()); emailIntent.PutExtra(Intent.ExtraSubject, email.Subject); // NOTE: http://stackoverflow.com/questions/13756200/send-html-email-with-gmail-4-2-1 if (((EmailMessage) email).IsHtml) emailIntent.PutExtra(Intent.ExtraText, Html.FromHtml(email.Message)); else emailIntent.PutExtra(Intent.ExtraText, email.Message); if (email.Attachments.Count > 0) { var attachment = (EmailAttachment) email.Attachments[0]; var uri = Android.Net.Uri.Parse("file://" + attachment.FilePath); emailIntent.PutExtra(Intent.ExtraStream, uri); } emailIntent.StartNewActivity(); } }