SmsDevice SmsDevice SmsDevice SmsDevice Class

Definition

Supports the operation of a mobile broadband SMS device.

Note

This functionality is only available to mobile operator apps and Windows Store app given privileged access by mobile network operators, mobile broadband adapter IHV, or OEM. For more information, see Mobile Broadband: device apps.

Note

Note that this class and its methods are supported for the maintenance of legacy desktop apps that used it in earlier versions of Windows; and if you do use this class, you must specify the Windows.Devices.Sms.LegacySmsApiContract in your app's manifest. Do not use this class if you are developing new apps for Windows 10. Instead, use the members of this namespace that do not require the Windows.Devices.Sms.LegacySmsApiContract.

public : sealed class SmsDevice : ISmsDevicepublic sealed class SmsDevice : ISmsDevicePublic NotInheritable Class SmsDevice Implements ISmsDevice// You can use this class in JavaScript.
Attributes
Windows 10 requirements
Device family
Windows Desktop Extension SDK (introduced v10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (introduced v1)
Capabilities
sms cellularMessaging

Remarks

Apps that use the Windows.Devices.Sms API to send or receive text messages fail with E_ACCESS_DENIED if the user revokes access.

If access to the SMS device has been given to an app:

The first use of the SmsDevice object to call FromIdAsync or GetDefaultAsync by applications written in C# or C++ should be on the single-threaded apartment (STA) thread. Calls from a multi-threaded apartment (MTA) thread may result in undefined behavior.

Properties

AccountPhoneNumber AccountPhoneNumber AccountPhoneNumber AccountPhoneNumber

Returns the phone number associated with the SMS device. The phone number can be used to associate incoming messages with the account and possibly an external storage mechanism such as an account inbox.

public : PlatForm::String AccountPhoneNumber { get; }public string AccountPhoneNumber { get; }Public ReadOnly Property AccountPhoneNumber As string// You can use this property in JavaScript.
Value
PlatForm::String string string string

A string representation of the account phone number.

Additional features and requirements
Device family
Windows Desktop Extension SDK (introduced v10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (introduced v1)
Capabilities
sms cellularMessaging

CellularClass CellularClass CellularClass CellularClass

Returns the cellular class of the SMS device. The class can be used to determine which encodings are appropriate or which device limitations are in effect.

public : CellularClass CellularClass { get; }public CellularClass CellularClass { get; }Public ReadOnly Property CellularClass As CellularClass// You can use this property in JavaScript.
Value
CellularClass CellularClass CellularClass CellularClass

An enumerated value indicating the device's cellular class.

Additional features and requirements
Device family
Windows Desktop Extension SDK (introduced v10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (introduced v1)
Capabilities
sms cellularMessaging

DeviceStatus DeviceStatus DeviceStatus DeviceStatus

Returns the SMS device's status, which indicates whether the device is ready, or not. It also indicates what type of problem exists if the device is not ready.

public : SmsDeviceStatus DeviceStatus { get; }public SmsDeviceStatus DeviceStatus { get; }Public ReadOnly Property DeviceStatus As SmsDeviceStatus// You can use this property in JavaScript.
Value
SmsDeviceStatus SmsDeviceStatus SmsDeviceStatus SmsDeviceStatus

An enumerated value that indicates the readiness of an SMS device to engage in cellular network traffic operations.

Additional features and requirements
Device family
Windows Desktop Extension SDK (introduced v10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (introduced v1)
Capabilities
sms cellularMessaging

MessageStore MessageStore MessageStore MessageStore

Accesses the on-device message store. The store holds messages until a client can retrieve them. On some devices, for example, the store may correspond to the SIM storage for SMS messages.

public : SmsDeviceMessageStore MessageStore { get; }public SmsDeviceMessageStore MessageStore { get; }Public ReadOnly Property MessageStore As SmsDeviceMessageStore// You can use this property in JavaScript.
Additional features and requirements
Device family
Windows Desktop Extension SDK (introduced v10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (introduced v1)
Capabilities
sms cellularMessaging

Methods

CalculateLength(SmsTextMessage) CalculateLength(SmsTextMessage) CalculateLength(SmsTextMessage) CalculateLength(SmsTextMessage)

Estimates the transmitted message length of the specified text message. The estimate can be useful to clients who want to give an indication of how many messages will be sent on the network to carry the text of the full message.

public : SmsEncodedLength CalculateLength(SmsTextMessage message)public SmsEncodedLength CalculateLength(SmsTextMessage message)Public Function CalculateLength(message As SmsTextMessage) As SmsEncodedLength// You can use this method in JavaScript.
Parameters
message
SmsTextMessage SmsTextMessage SmsTextMessage SmsTextMessage

A reference to the SMS text message to measure.

Returns

A reference to an SmsEncodedLength structure that is populated with the length information.

Additional features and requirements
Device family
Windows Desktop Extension SDK (introduced v10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (introduced v1)
Capabilities
sms cellularMessaging

FromIdAsync(String) FromIdAsync(String) FromIdAsync(String) FromIdAsync(String)

Creates an instance of SmsDevice for the device that received the SMS message.

public : static IAsyncOperation<SmsDevice> FromIdAsync(PlatForm::String deviceId)public static IAsyncOperation<SmsDevice> FromIdAsync(String deviceId)Public Static Function FromIdAsync(deviceId As String) As IAsyncOperation( Of SmsDevice )// You can use this method in JavaScript.
Parameters
deviceId
PlatForm::String String String String

A string representation of the DeviceInformation ID of the SMS device that received the SMS message.

Returns
Additional features and requirements
Device family
Windows Desktop Extension SDK (introduced v10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (introduced v1)
Capabilities
sms cellularMessaging

Remarks

The SmsReceivedEventDetails interface handles the details of a received message; you can pass the DeviceInformation ID from that interface to this method to activate the device and retrieve additional message details, such as the sender and the body of the message. Because the device might be busy, the operation executes asynchronously. The asynchronous operation object returns immediately.

FromNetworkAccountIdAsync(String) FromNetworkAccountIdAsync(String) FromNetworkAccountIdAsync(String) FromNetworkAccountIdAsync(String)

Creates an instance of SmsDevice for the specified Mobile Broadband network account ID.

public : static IAsyncOperation<SmsDevice> FromNetworkAccountIdAsync(PlatForm::String networkAccountId)public static IAsyncOperation<SmsDevice> FromNetworkAccountIdAsync(String networkAccountId)Public Static Function FromNetworkAccountIdAsync(networkAccountId As String) As IAsyncOperation( Of SmsDevice )// You can use this method in JavaScript.
Parameters
networkAccountId
PlatForm::String String String String

The Mobile Broadband network account ID to use to select the corresponding mobile broadband device to use for the SMS device

Returns

When this method completes, it returns the SmsDevice for the specified Mobile Broadband network account ID.

Additional features and requirements
Device family
Windows Desktop Extension SDK (introduced v10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (introduced v1)
Capabilities
sms cellularMessaging

GetDefaultAsync() GetDefaultAsync() GetDefaultAsync() GetDefaultAsync()

Creates an instance of an SmsDevice object associated with the default SMS device. Because the device might be busy, the operation executes asynchronously. The asynchronous operation object returns immediately.

public : static IAsyncOperation<SmsDevice> GetDefaultAsync()public static IAsyncOperation<SmsDevice> GetDefaultAsync()Public Static Function GetDefaultAsync() As IAsyncOperation( Of SmsDevice )// You can use this method in JavaScript.
Returns
Additional features and requirements
Device family
Windows Desktop Extension SDK (introduced v10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (introduced v1)
Capabilities
sms cellularMessaging

GetDeviceSelector() GetDeviceSelector() GetDeviceSelector() GetDeviceSelector()

Retrieves the class selection string that can be used to enumerate SMS devices.

public : static PlatForm::String GetDeviceSelector()public static string GetDeviceSelector()Public Static Function GetDeviceSelector() As string// You can use this method in JavaScript.
Returns
PlatForm::String string string string

A reference to an Advanced Query Syntax (AQS) string that identifies an SMS device.

Additional features and requirements
Device family
Windows Desktop Extension SDK (introduced v10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (introduced v1)
Capabilities
sms cellularMessaging

SendMessageAsync(ISmsMessage) SendMessageAsync(ISmsMessage) SendMessageAsync(ISmsMessage) SendMessageAsync(ISmsMessage)

Asynchronously sends a message using the SMS device. The method is asynchronous because the send operation might not occur instantaneously. The message operation object is returned immediately.

public : SendSmsMessageOperation SendMessageAsync(ISmsMessage message)public SendSmsMessageOperation SendMessageAsync(ISmsMessage message)Public Function SendMessageAsync(message As ISmsMessage) As SendSmsMessageOperation// You can use this method in JavaScript.
Parameters
message
ISmsMessage ISmsMessage ISmsMessage ISmsMessage

A reference to an ISmsMessage object. The message can be in text or binary format.

Returns
Additional features and requirements
Device family
Windows Desktop Extension SDK (introduced v10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (introduced v1)
Capabilities
sms cellularMessaging

Events

SmsDeviceStatusChanged SmsDeviceStatusChanged SmsDeviceStatusChanged SmsDeviceStatusChanged

Sets an event handler to be called when the status of the SMS device changes.

public : event SmsDeviceStatusChangedEventHandler SmsDeviceStatusChangedpublic event SmsDeviceStatusChangedEventHandler SmsDeviceStatusChangedPublic Event SmsDeviceStatusChanged// You can use this event in JavaScript.
Additional features and requirements
Device family
Windows Desktop Extension SDK (introduced v10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (introduced v1)
Capabilities
sms cellularMessaging

SmsMessageReceived SmsMessageReceived SmsMessageReceived SmsMessageReceived

Sets an event handler to be called when the device receives a new text message.

public : event SmsMessageReceivedEventHandler SmsMessageReceivedpublic event SmsMessageReceivedEventHandler SmsMessageReceivedPublic Event SmsMessageReceived// You can use this event in JavaScript.
Additional features and requirements
Device family
Windows Desktop Extension SDK (introduced v10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (introduced v1)
Capabilities
sms cellularMessaging