SmsDevice 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
모바일 광대역 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
- 상속
- 특성
- 구현
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를 호출하면 앱이 처음 실행되면 동의 프롬프트가 트리거됩니다.
- GetDefaultAsync 및 FromIdAsync의 비동기 메서드에 대한 오류 처리기는 사용자가 동의 프롬프트에서 권한을 부여하지 않았거나 권한이 취소된 경우 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 |
디바이스에서 새 문자 메시지를 받을 때 호출할 이벤트 처리기를 설정합니다. |