Search code examples
c#xamarin.iosxamarin.androidxamarin.formsportable-class-library

How to Send SMS on Xamarin.Forms


I am developing Xamarin.Forms project, iOS, Android and Windows Phone.

My app ask the user to enter text Message and Phone number then on submit, I need to send SMS to the phone number.

I prefer to have a single implementation for all platforms.


Solution

  • You can use this open source plugin Xam.Plugins.Messaging https://github.com/cjlotz/Xamarin.Plugins

    This is the provided example (from https://github.com/cjlotz/Xamarin.Plugins/blob/master/Messaging/Details.md ) :

    // Make Phone Call
    var phoneDialer = CrossMessaging.Current.PhoneDialer;
    if (phoneDialer.CanMakePhoneCall) 
        phoneDialer.MakePhoneCall("+272193343499");
    
    // Send Sms
    var smsMessenger = CrossMessaging.Current.SmsMessenger;
    if (smsMessenger.CanSendSms)
       smsMessenger.SendSms("+27213894839493", "Well hello there from Xam.Messaging.Plugin");
    
    var emailMessenger = CrossMessaging.Current.EmailMessenger;
    if (emailMessenger.CanSendEmail)
    {
        // Send simple e-mail to single receiver without attachments, bcc, cc etc.
        emailMessenger.SendEmail("[email protected]", "Xamarin Messaging Plugin", "Well hello there from Xam.Messaging.Plugin");
    
        // Alternatively use EmailBuilder fluent interface to construct more complex e-mail with multiple recipients, bcc, attachments etc. 
        var email = new EmailMessageBuilder()
          .To("[email protected]")
          .Cc("[email protected]")
          .Bcc(new[] { "[email protected]", "[email protected]" })
          .Subject("Xamarin Messaging Plugin")
          .Body("Well hello there from Xam.Messaging.Plugin")
          .Build();
    
        emailMessenger.SendEmail(email);
    }