SmsDevice Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Admite el funcionamiento de un dispositivo SMS de banda ancha móvil.
Nota
Esta funcionalidad solo está disponible para aplicaciones de operadores móviles y aplicaciones para UWP con acceso con privilegios por parte de operadores de red móvil, IHV de adaptador de banda ancha móvil o OEM. Para obtener más información, consulte Banda ancha móvil.
Nota
Esta clase y sus métodos son compatibles con el mantenimiento de aplicaciones de escritorio heredadas que la usaron en versiones anteriores de Windows. Si usas esta clase, debes especificar Windows.Devices.Sms.LegacySmsApiContract en el manifiesto de la aplicación. No use esta clase si está desarrollando una nueva aplicación para Windows. En su lugar, use las API de este espacio de nombres que no requieran 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
- Herencia
- Atributos
- Implementaciones
Requisitos de Windows
Familia de dispositivos |
Windows Desktop Extension SDK (se introdujo en la versión 10.0.10240.0)
|
API contract |
Windows.Devices.Sms.LegacySmsApiContract (se introdujo en la versión v1.0)
|
Características de aplicaciones |
cellularMessaging
sms
|
Comentarios
Las aplicaciones que usan la API Windows.Devices.Sms para enviar o recibir mensajes de texto producen un error E_ACCESS_DENIED si el usuario revoca el acceso.
Si se ha concedido acceso al dispositivo SMS a una aplicación:
- Al llamar a GetDefaultAsync o FromIdAsync , se desencadena una solicitud de consentimiento la primera vez que se ejecuta la aplicación.
- Los controladores de errores de los métodos asincrónicos de GetDefaultAsync y FromIdAsync reciben E_ACCESS_DENIED si el usuario no concedió permiso en el mensaje de consentimiento o si se revoca el permiso.
- Si el usuario vuelve a habilitar el acceso a SMS después de revocarlo, vuelva a llamar a GetDefaultAsync o FromIdAsync para acceder a SMS. Por ejemplo, el controlador de errores de E_ACCESS_DENIED error podría mostrar la interfaz de usuario para indicar al usuario que vuelva a habilitar SMS con el acceso a la configuración y, a continuación, pulse un botón para volver a intentar acceder a SMS. El código subyacente del botón debe llamar a GetDefaultAsync o FromIdAsync antes de realizar otras llamadas.
- Si la aplicación se registra para el evento en segundo plano de SMS (Windows.ApplicationModel.Background.SystemTriggerType.SmsReceived), la aplicación debe llamar primero a GetDefaultAsync o FromIdAsync para acceder a SMS para asegurarse de que la aplicación tiene acceso. La llamada a GetDefaultAsync o FromIdAsync desde la tarea en segundo plano no desencadenará un mensaje de consentimiento. Si es una primera vez que se ejecuta o si el usuario no conceda permiso o si se revoca el permiso, recibirá un E_ACCESS_DENIED.
El primer uso del objeto SmsDevice para llamar a FromIdAsync o GetDefaultAsync por las aplicaciones escritas en C# o C++ deben estar en el subproceso de un solo subproceso (STA). Las llamadas desde un subproceso de apartamento multiproceso (MTA) pueden dar lugar a un comportamiento indefinido.
Propiedades
AccountPhoneNumber |
Devuelve el número de teléfono asociado al dispositivo SMS. El número de teléfono se puede usar para asociar mensajes entrantes a la cuenta y posiblemente un mecanismo de almacenamiento externo, como una bandeja de entrada de cuenta. |
CellularClass |
Devuelve la clase de telefonía móvil del dispositivo SMS. La clase se puede usar para determinar qué codificaciones son adecuadas o qué limitaciones de dispositivo están en vigor. |
DeviceStatus |
Devuelve el estado del dispositivo SMS, que indica si el dispositivo está listo o no. También indica qué tipo de problema existe si el dispositivo no está listo. |
MessageStore |
Accede al almacén de mensajes en el dispositivo. El almacén contiene mensajes hasta que un cliente pueda recuperarlos. En algunos dispositivos, por ejemplo, el almacén puede corresponder al almacenamiento SIM para los mensajes SMS. |
Métodos
CalculateLength(SmsTextMessage) |
Calcula la longitud del mensaje transmitido del mensaje de texto especificado. La estimación puede ser útil para los clientes que quieran indicar cuántos mensajes se enviarán en la red para llevar el texto del mensaje completo. |
FromIdAsync(String) |
Crea una instancia de SmsDevice para el dispositivo que recibió el mensaje SMS. |
FromNetworkAccountIdAsync(String) |
Crea una instancia de SmsDevice para el identificador de cuenta de red de banda ancha móvil especificado. |
GetDefaultAsync() |
Crea una instancia de un objeto SmsDevice asociado al dispositivo SMS predeterminado. Dado que el dispositivo puede estar ocupado, la operación se ejecuta de forma asincrónica. El objeto de operación asincrónica devuelve inmediatamente. |
GetDeviceSelector() |
Recupera la cadena de selección de clase que se puede usar para enumerar dispositivos SMS. |
SendMessageAsync(ISmsMessage) |
Envía de forma asincrónica un mensaje mediante el dispositivo SMS. El método es asincrónico porque es posible que la operación de envío no se produzca de forma instantánea. El objeto de operación de mensaje se devuelve inmediatamente. |
Eventos
SmsDeviceStatusChanged |
Establece un controlador de eventos al que se llamará cuando cambie el estado del dispositivo SMS. |
SmsMessageReceived |
Establece un controlador de eventos al que se llamará cuando el dispositivo recibe un nuevo mensaje de texto. |