Поделиться через


Xamarin.Essentials:СМС

Класс Sms позволяет приложению открыть приложение SMS по умолчанию с указанным сообщением, которое нужно отправить получателю.

Начало работы

Чтобы начать использовать этот API, ознакомьтесь с руководством по началу работы с Xamarin.Essentials, чтобы правильно настроить и установить библиотеку в проектах.

Для доступа к функции Sms нужно создать описанную ниже конфигурацию для конкретной платформы.

Если целевой версией Android для проекта является Android 11 (API R 30), необходимо обновить манифест Android с помощью запросов, которые используются с новыми требованиями к видимости пакета.

Откройте файл AndroidManifest.xml в папке Properties и добавьте приведенный ниже код в узел manifest:

<queries>
  <intent>
    <action android:name="android.intent.action.VIEW" />
    <data android:scheme="smsto"/>
  </intent>
</queries>

Использование класса Sms

Добавьте ссылку на Xamarin.Essentials в своем классе:

using Xamarin.Essentials;

Для отправки SMS нужно вызвать метод ComposeAsync класса SmsMessage, передав получателя и тело сообщения. Оба параметра являются необязательными.

public class SmsTest
{
    public async Task SendSms(string messageText, string recipient)
    {
        try
        {
            var message = new SmsMessage(messageText, new []{ recipient });
            await Sms.ComposeAsync(message);
        }
        catch (FeatureNotSupportedException ex)
        {
            // Sms is not supported on this device.
        }
        catch (Exception ex)
        {
            // Other error has occurred.
        }
    }
}

Дополнительно в метод SmsMessage можно передать несколько получателей:

public class SmsTest
{
    public async Task SendSms(string messageText, string[] recipients)
    {
        try
        {
            var message = new SmsMessage(messageText, recipients);
            await Sms.ComposeAsync(message);
        }
        catch (FeatureNotSupportedException ex)
        {
            // Sms is not supported on this device.
        }
        catch (Exception ex)
        {
            // Other error has occurred.
        }
    }
}

API

Другие видео о Xamarin см. на Channel 9 и YouTube.