Share via


SmsDevice Classe

Definizione

Supporta il funzionamento di un dispositivo SMS mobile broadband.

Nota

Questa funzionalità è disponibile solo per le app dell'operatore di telefonia mobile e le app UWP a cui è stato concesso l'accesso con privilegi dagli operatori di rete mobile, dalla scheda AHV mobile a banda larga o dall'OEM. Per altre informazioni, vedere Mobile Broadband.

Nota

Questa classe e i relativi metodi sono supportati per la manutenzione di app desktop legacy che l'hanno usata nelle versioni precedenti di Windows. Se usi questa classe, devi specificare Windows.Devices.Sms.LegacySmsApiContract nel manifesto dell'app. Non usare questa classe se stai sviluppando una nuova app per Windows. Usare invece le API in questo spazio dei nomi che non richiedono 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
Ereditarietà
Object Platform::Object IInspectable SmsDevice
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows Desktop Extension SDK (è stato introdotto in 10.0.10240.0)
API contract
Windows.Devices.Sms.LegacySmsApiContract (è stato introdotto in v1.0)
Funzionalità dell'app
cellularMessaging sms

Commenti

Le app che usano l'API Windows.Devices.Sms per inviare o ricevere sms hanno esito negativo con E_ACCESS_DENIED se l'utente revoca l'accesso.

Se l'accesso al dispositivo SMS è stato concesso a un'app:

  • La chiamata a GetDefaultAsync o FromIdAsync attiva una richiesta di consenso la prima volta che viene eseguita l'app.
  • I gestori degli errori per i metodi asincroni di GetDefaultAsync e FromIdAsync ricevono E_ACCESS_DENIED se l'utente non ha concesso l'autorizzazione nella richiesta di consenso o se viene revocata l'autorizzazione.
  • Se l'utente riabilita l'accesso a SMS dopo la revoca, chiama nuovamente GetDefaultAsync o FromIdAsync per accedere a SMS. Ad esempio, il gestore degli errori per E_ACCESS_DENIED errore potrebbe visualizzare l'interfaccia utente per indicare all'utente di riabilitare l'SMS usando l'accesso alle impostazioni e quindi toccare un pulsante per riprovare ad accedere a SMS. Il codice dietro il pulsante deve chiamare GetDefaultAsync o FromIdAsync prima di effettuare altre chiamate.
  • Se l'app esegue la registrazione per l'evento in background SMS (Windows.ApplicationModel.Background.SystemTriggerType.SmsReceived), l'app deve prima chiamare Nuovamente GetDefaultAsync o FromIdAsync per accedere a SMS per garantire che l'app abbia accesso. La chiamata a GetDefaultAsync o FromIdAsync dall'attività in background non attiverà una richiesta di consenso. Se si tratta di una prima esecuzione o se l'utente non ha concesso l'autorizzazione o se l'autorizzazione viene revocata, riceverà un E_ACCESS_DENIED.

Il primo uso dell'oggetto SmsDevice per chiamare FromIdAsync o GetDefaultAsync dalle applicazioni scritte in C# o C++ deve trovarsi nel thread apartment a thread singolo (STA). Le chiamate da un thread multithreading (MTA) possono comportare un comportamento non definito.

Proprietà

AccountPhoneNumber

Restituisce il numero di telefono associato al dispositivo SMS. Il numero di telefono può essere usato per associare i messaggi in arrivo all'account ed eventualmente un meccanismo di archiviazione esterno, ad esempio una posta in arrivo dell'account.

CellularClass

Restituisce la classe cellulare del dispositivo SMS. La classe può essere usata per determinare quali codifiche sono appropriate o quali limitazioni del dispositivo sono effettive.

DeviceStatus

Restituisce lo stato del dispositivo SMS, che indica se il dispositivo è pronto o meno. Indica anche quale tipo di problema esiste se il dispositivo non è pronto.

MessageStore

Accede all'archivio messaggi sul dispositivo. L'archivio contiene messaggi fino a quando un client non può recuperarli. In alcuni dispositivi, ad esempio, l'archivio può corrispondere all'archiviazione SIM per i messaggi SMS.

Metodi

CalculateLength(SmsTextMessage)

Stima la lunghezza del messaggio trasmesso del messaggio di testo specificato. La stima può essere utile per i client che vogliono fornire un'indicazione del numero di messaggi che verranno inviati in rete per portare il testo del messaggio completo.

FromIdAsync(String)

Crea un'istanza di SmsDevice per il dispositivo che ha ricevuto il messaggio SMS.

FromNetworkAccountIdAsync(String)

Crea un'istanza di SmsDevice per l'ID dell'account di rete Mobile Broadband specificato.

GetDefaultAsync()

Crea un'istanza di un oggetto SmsDevice associato al dispositivo SMS predefinito. Poiché il dispositivo potrebbe essere occupato, l'operazione viene eseguita in modo asincrono. L'oggetto operazione asincrona restituisce immediatamente.

GetDeviceSelector()

Recupera la stringa di selezione della classe che può essere utilizzata per enumerare i dispositivi SMS.

SendMessageAsync(ISmsMessage)

Invia in modo asincrono un messaggio usando il dispositivo SMS. Il metodo è asincrono perché l'operazione di invio potrebbe non verificarsi istantaneamente. L'oggetto operazione messaggio viene restituito immediatamente.

Eventi

SmsDeviceStatusChanged

Imposta un gestore eventi da chiamare quando lo stato del dispositivo SMS cambia.

SmsMessageReceived

Imposta un gestore eventi da chiamare quando il dispositivo riceve un nuovo sms.

Si applica a