SmsDevice Класс

Определение

Поддерживает работу мобильного широкополосного SMS-устройства.

Примечание

Эта функция доступна только для приложений мобильных операторов и приложений UWP с привилегированным доступом со стороны операторов мобильной сети, адаптера мобильного широкополосного подключения IHV или OEM. Дополнительные сведения см. в разделе Мобильное широкополосное подключение.

Примечание

Этот класс и его методы поддерживаются для обслуживания устаревших классических приложений, которые использовали его в более ранних версиях Windows. Если вы используете этот класс, необходимо указать Windows.Devices.Sms.LegacySmsApiContract в манифесте приложения. Не используйте этот класс, если вы разрабатываете новое приложение для Windows. Вместо этого используйте API в этом пространстве имен, которым не требуется Windows.Devices.Sms.LegacySmsApiContract.

public ref class SmsDevice sealed : ISmsDevice
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Devices.Sms.LegacySmsApiContract, 65536)]
/// [Windows.Foundation.Metadata.Deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, Windows.Devices.Sms.LegacySmsApiContract)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SmsDevice final : ISmsDevice
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Devices.Sms.LegacySmsApiContract, 65536)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, "Windows.Devices.Sms.LegacySmsApiContract")]
class SmsDevice final : ISmsDevice
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Devices.Sms.LegacySmsApiContract), 65536)]
[Windows.Foundation.Metadata.Deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, typeof(Windows.Devices.Sms.LegacySmsApiContract))]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class SmsDevice : ISmsDevice
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Devices.Sms.LegacySmsApiContract), 65536)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Deprecated("SmsDevice may be altered or unavailable for releases after Windows 10. Instead, use SmsDevice2.", Windows.Foundation.Metadata.DeprecationType.Deprecate, 65536, "Windows.Devices.Sms.LegacySmsApiContract")]
public sealed class SmsDevice : ISmsDevice
Public NotInheritable Class SmsDevice
Implements ISmsDevice
Наследование
Object Platform::Object IInspectable SmsDevice
Атрибуты
Реализации

Требования к Windows

Семейство устройств
Windows Desktop Extension SDK (появилось в 10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (появилось в v1.0)
Возможности приложения
cellularMessaging sms

Комментарии

Приложения, использующие API Windows.Devices.Sms для отправки или получения текстовых сообщений, завершаются сбоем с E_ACCESS_DENIED , если пользователь отменяет доступ.

Если приложению предоставлен доступ к устройству SMS, выполните указанные ниже действия.

  • Вызов Метода GetDefaultAsync или FromIdAsync запускает запрос согласия при первом запуске приложения.
  • Обработчики ошибок для асинхронных методов GetDefaultAsync и FromIdAsync получают E_ACCESS_DENIED , если пользователь не предоставил разрешение в запросе согласия или если разрешение отозвано.
  • Если пользователь повторно включает доступ к SMS после отзыва, снова вызовите Метод GetDefaultAsync или FromIdAsync , чтобы получить доступ к SMS. Например, обработчик ошибок для ошибки E_ACCESS_DENIED может отображать пользовательский интерфейс, чтобы указать пользователю повторно включить SMS с помощью чудо-кнопки "Параметры", а затем нажать кнопку, чтобы повторить доступ к SMS. Код, лежащий в основе кнопки, должен вызывать GetDefaultAsync или FromIdAsync перед выполнением других вызовов.
  • Если приложение регистрируется для фонового события SMS (Windows.ApplicationModel.Background.SystemTriggerType.SmsReceived), приложение необходимо снова вызвать GetDefaultAsync или FromIdAsync , чтобы получить доступ к SMS, чтобы убедиться, что приложение имеет доступ. Вызов GetDefaultAsync или FromIdAsync из фоновой задачи не вызовет запрос согласия. Если это первый запуск, если пользователь не предоставил разрешение или если разрешение было отозвано, он получит E_ACCESS_DENIED.

Первое использование объекта SmsDevice для вызова FromIdAsync или GetDefaultAsync приложениями, написанными на C# или C++, должно быть в потоке однопотокового подразделения (STA). Вызовы из потока многопотокового подразделения (MTA) могут привести к неопределенному поведению.

Свойства

AccountPhoneNumber

Возвращает номер телефона, связанный с устройством SMS. Номер телефона можно использовать для связи входящих сообщений с учетной записью и, возможно, внешним механизмом хранения, таким как папка "Входящие" учетной записи.

CellularClass

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

DeviceStatus

Возвращает состояние sms-устройства, которое указывает, готово ли устройство. Он также указывает, какой тип проблемы существует, если устройство не готово.

MessageStore

Обращается к хранилищу сообщений на устройстве. Хранилище хранит сообщения до тех пор, пока клиент не сможет их получить. На некоторых устройствах, например, хранилище может соответствовать хранилищу SIM-карт для SMS-сообщений.

Методы

CalculateLength(SmsTextMessage)

Оценивает длину переданного сообщения указанного текстового сообщения. Оценка может быть полезна клиентам, которые хотят указать, сколько сообщений будет отправлено в сети для переноса текста полного сообщения.

FromIdAsync(String)

Создает экземпляр SmsDevice для устройства, которое получило SMS-сообщение.

FromNetworkAccountIdAsync(String)

Создает экземпляр SmsDevice для указанного идентификатора учетной записи мобильной широкополосной сети.

GetDefaultAsync()

Создает экземпляр объекта SmsDevice, связанного с устройством SMS по умолчанию. Так как устройство может быть занято, операция выполняется асинхронно. Объект асинхронной операции возвращается немедленно.

GetDeviceSelector()

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

SendMessageAsync(ISmsMessage)

Асинхронно отправляет сообщение с помощью устройства SMS. Метод является асинхронным, так как операция отправки может не выполняться мгновенно. Объект операции сообщения возвращается немедленно.

События

SmsDeviceStatusChanged

Задает обработчик событий для вызова при изменении состояния устройства SMS.

SmsMessageReceived

Задает обработчик событий для вызова при получении устройством нового текстового сообщения.

Применяется к