다음을 통해 공유


SmsDevice 클래스

정의

모바일 광대역 SMS 디바이스의 작동을 지원합니다.

참고

이 기능은 모바일 네트워크 운영자, 모바일 광대역 어댑터 IHV 또는 OEM에서 권한 있는 액세스 권한이 부여된 통신사 앱 및 UWP 앱에서만 사용할 수 있습니다. 자세한 내용은 모바일 광대역을 참조하세요.

참고

이 클래스 및 해당 메서드는 이전 버전의 Windows에서 사용한 레거시 데스크톱 앱의 유지 관리를 위해 지원됩니다. 이 클래스를 사용하는 경우 앱 매니페스트에서 Windows.Devices.Sms.LegacySmsApiContract 를 지정해야 합니다. Windows용 새 앱을 개발하는 경우 이 클래스를 사용하지 마세요. 대신 Windows.Devices.Sms.LegacySmsApiContract가 필요하지 않은 이 네임스페이스의 API를 사용합니다.

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

설명

Windows.Devices.Sms API를 사용하여 문자 메시지를 보내거나 받는 앱은 사용자가 액세스를 취소하는 경우 E_ACCESS_DENIED 실패합니다.

SMS 디바이스에 대한 액세스 권한이 앱에 제공된 경우:

  • GetDefaultAsync 또는 FromIdAsync를 호출하면 앱이 처음 실행되면 동의 프롬프트가 트리거됩니다.
  • GetDefaultAsyncFromIdAsync의 비동기 메서드에 대한 오류 처리기는 사용자가 동의 프롬프트에서 권한을 부여하지 않았거나 권한이 취소된 경우 E_ACCESS_DENIED 받습니다.
  • 사용자가 SMS를 해지한 후 SMS에 대한 액세스를 다시 사용하도록 설정하는 경우 GetDefaultAsync 또는 FromIdAsync 를 다시 호출하여 SMS에 액세스합니다. 예를 들어 E_ACCESS_DENIED 오류에 대한 오류 처리기는 사용자에게 설정 참을 사용하여 SMS를 다시 사용하도록 지시한 다음 단추를 탭하여 SMS에 다시 액세스하도록 지시하는 UI를 표시할 수 있습니다. 단추 뒤에 있는 코드는 다른 호출을 하기 전에 GetDefaultAsync 또는 FromIdAsync 를 호출해야 합니다.
  • 앱이 SMS 백그라운드 이벤트(Windows.ApplicationModel.Background.SystemTriggerType.SmsReceived)에 등록하는 경우 앱은 먼저 GetDefaultAsync 또는 FromIdAsync 를 다시 호출하여 SMS에 액세스하여 앱에 액세스해야 합니다. 백그라운드 작업에서 GetDefaultAsync 또는 FromIdAsync 를 호출해도 동의 프롬프트가 트리거되지 않습니다. 처음 실행하거나 사용자가 권한을 부여하지 않았거나 권한이 취소된 경우 E_ACCESS_DENIED 받습니다.

C# 또는 C++로 작성된 애플리케이션에서 FromIdAsync 또는 GetDefaultAsync를 호출하는 SmsDevice 개체의 첫 번째 사용은 STA(단일 스레드 아파트) 스레드에 있어야 합니다. MTA(다중 스레드 아파트) 스레드에서 호출하면 정의되지 않은 동작이 발생할 수 있습니다.

속성

AccountPhoneNumber

SMS 디바이스와 연결된 전화 번호를 반환합니다. 전화 번호를 사용하여 들어오는 메시지를 계정 및 계정 받은 편지함과 같은 외부 스토리지 메커니즘과 연결할 수 있습니다.

CellularClass

SMS 디바이스의 셀룰러 클래스를 반환합니다. 클래스를 사용하여 적절한 인코딩 또는 적용되는 디바이스 제한을 확인할 수 있습니다.

DeviceStatus

디바이스가 준비되었는지 여부를 나타내는 SMS 디바이스의 상태 반환합니다. 또한 디바이스가 준비되지 않은 경우 존재하는 문제 유형을 나타냅니다.

MessageStore

디바이스 내 메시지 저장소에 액세스합니다. 저장소는 클라이언트가 메시지를 검색할 수 있게 될 때까지 메시지를 보관합니다. 예를 들어 일부 디바이스에서 저장소는 SMS 메시지의 SIM 스토리지에 해당할 수 있습니다.

메서드

CalculateLength(SmsTextMessage)

지정된 문자 메시지의 전송된 메시지 길이를 예측합니다. 예측값은 전체 메시지의 텍스트를 전달하기 위해 네트워크에서 전송되는 메시지 수를 표시하려는 클라이언트에 유용할 수 있습니다.

FromIdAsync(String)

SMS 메시지를 받은 디바이스에 대한 SmsDevice instance 만듭니다.

FromNetworkAccountIdAsync(String)

지정된 모바일 광대역 네트워크 계정 ID에 대한 SmsDevice instance 만듭니다.

GetDefaultAsync()

기본 SMS 디바이스와 연결된 SmsDevice 개체의 instance 만듭니다. 디바이스가 사용 중일 수 있으므로 작업이 비동기적으로 실행됩니다. 비동기 작업 개체는 즉시 반환됩니다.

GetDeviceSelector()

SMS 디바이스를 열거하는 데 사용할 수 있는 클래스 선택 문자열을 검색합니다.

SendMessageAsync(ISmsMessage)

SMS 디바이스를 사용하여 메시지를 비동기적으로 보냅니다. 전송 작업이 즉시 발생하지 않을 수 있으므로 메서드는 비동기적입니다. 메시지 작업 개체가 즉시 반환됩니다.

이벤트

SmsDeviceStatusChanged

SMS 디바이스의 상태 변경될 때 호출할 이벤트 처리기를 설정합니다.

SmsMessageReceived

디바이스에서 새 문자 메시지를 받을 때 호출할 이벤트 처리기를 설정합니다.

적용 대상