UssdSession.SendMessageAndGetReplyAsync(UssdMessage) 메서드

정의

USSD 세션에 메시지를 보내고 회신을 비동기적으로 검색하는 처리기를 반환합니다.

참고

이 기능은 모바일 네트워크 운영자가 권한 있는 액세스 권한을 부여받은 통신사 앱 및 UWP 앱에서만 사용할 수 있습니다.

이 API를 사용하고 Microsoft Store 앱을 게시하려면 특별한 승인이 필요합니다. 자세한 내용은 앱 기능 선언 아래의 특수 및 제한된 기능 섹션을 참조하세요.

public:
 virtual IAsyncOperation<UssdReply ^> ^ SendMessageAndGetReplyAsync(UssdMessage ^ message) = SendMessageAndGetReplyAsync;
IAsyncOperation<UssdReply> SendMessageAndGetReplyAsync(UssdMessage const& message);
public IAsyncOperation<UssdReply> SendMessageAndGetReplyAsync(UssdMessage message);
function sendMessageAndGetReplyAsync(message)
Public Function SendMessageAndGetReplyAsync (message As UssdMessage) As IAsyncOperation(Of UssdReply)

매개 변수

message
UssdMessage

USSD 세션으로 보낼 메시지입니다.

반환

IAsyncOperation<UssdReply>

보낸 메시지에 대한 USSD 응답을 검색하는 비동기 처리기입니다.

Windows 요구 사항

앱 기능
cellularDeviceControl cellularDeviceIdentity

설명

전송되는 USSD 메시지는 요청 또는 응답일 수 있습니다. 작업이 비동기적이며 완료 시 인터페이스를 사용하여 단일 콜백을 IAsyncOperation(UssdReply) 실행합니다. 인터페이스를 사용하여 비동기 작업을 취소할 IAsyncOperation(UssdReply) 수 있습니다.

SendMessageAndGetReplyAsync의 C++ 프로젝션을 사용하는 애플리케이션이 해당 콜백 내에서 개체에 대한 마지막 참조 UssdSession 를 해제하면 SendMessageAndGetReplyAsync가 중단될 수 있습니다. 따라서 애플리케이션은 SendMessageAndGetReplyAsync 내에서 콜백이 해제되지 않도록 해야 합니다. 이 작업을 수행하는 한 가지 방법은 세션 개체에 대한 참조를 전달하여 세션 개체를 해제하는 데 완성 콜백을 사용하는 콜백 내에서 다른 비동기 작업(예: 타이머)을 만드는 것입니다.

#include <winrt/Windows.System.Threading.h>
using namespace winrt;
using namespace Windows::System::Threading;
...
auto timerDelegate = [ussdSession](ThreadPoolTimer const& timer) {};
Windows::Foundation::TimeSpan delay{ std::chrono::seconds(1) };
ThreadPoolTimer timer{ ThreadPoolTimer::CreateTimer(TimerElapsedHandler(timerDelegate), delay) };
auto timerDelegate = [ussdSession](Windows::System::Threading::ThreadPoolTimer^ timer) {};
Windows::Foundation::TimeSpan delay;
delay.Duration = 1; // non-zero value
Windows::System::Threading::ThreadPoolTimer^ timer = 
Windows::System::Threading::ThreadPoolTimer::CreateTimer(ref new
Windows::System::Threading::TimerElapsedHandler(timerDelegate), delay);

적용 대상