PhoneLineWatcher 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
디바이스에서 새 전화선/제거/업데이트된 전화선을 모니터링하고 수신기에게 변경 내용을 알립니다.
public ref class PhoneLineWatcher sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.ApplicationModel.Calls.CallsPhoneContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PhoneLineWatcher final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.ApplicationModel.Calls.CallsPhoneContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class PhoneLineWatcher
Public NotInheritable Class PhoneLineWatcher
- 상속
- 특성
Windows 요구 사항
디바이스 패밀리 |
Windows Mobile Extension SDK (10.0.10240.0에서 도입되었습니다.)
|
API contract |
Windows.ApplicationModel.Calls.CallsPhoneContract (v1.0에서 도입되었습니다.)
|
앱 기능 |
phoneCallHistory
phoneCallHistorySystem
|
설명
전화 회선은 사용자가 인바운드 전화를 받거나 아웃바운드 전화를 걸 때 사용할 수 있는 회선입니다. 단일 디바이스에는 여러 줄이 있을 수 있습니다. 예를 들어 시스템은 아웃바운드 호출을 시작할 수 있도록 하는 VoIP 애플리케이션에 대해 특별히 별도의 줄을 만듭니다.
시스템은 부팅 시 사용 가능한 줄을 자동으로 검색한 다음 줄이 생성되거나 변경되면 선을 동적으로 검색합니다. PhoneLineWatcher 클래스는 새 전화선이 검색되고 변경 내용에 반응할 때 애플리케이션이 이벤트를 수신하는 메커니즘을 제공합니다.
이 클래스는 감시자 패턴을 구현합니다.
RequestLineWatcher를 호출하여 이 클래스의 instance 검색할 수 있습니다.
다음 예제에서는 현재 모든 전화선을 열거하는 방법을 보여 줍니다.
private async Task<Dictionary<Guid, PhoneLine>> GetPhoneLinesAsync()
{
PhoneCallStore store = await PhoneCallManager.RequestStoreAsync();
// Start the PhoneLineWatcher
var watcher = store.RequestLineWatcher();
var phoneLines = new List<PhoneLine>();
var lineEnumerationCompletion = new TaskCompletionSource<bool>();
watcher.LineAdded += async (o, args) => { var line = await PhoneLine.FromIdAsync(args.LineId); phoneLines.Add(line); };
watcher.Stopped += (o, args) => lineEnumerationCompletion.TrySetResult(false);
watcher.EnumerationCompleted += (o, args) => lineEnumerationCompletion.TrySetResult(true);
watcher.Start();
// Wait for enumeration completion
if (!await lineEnumerationCompletion.Task)
{
throw new Exception("Phone Line Enumeration failed");
}
watcher.Stop();
Dictionary<Guid, PhoneLine> returnedLines = new Dictionary<Guid, PhoneLine>();
foreach (PhoneLine phoneLine in phoneLines)
{
if (phoneLine != null && phoneLine.Transport == PhoneLineTransport.Cellular)
{
returnedLines.Add(phoneLine.Id, phoneLine);
}
}
return returnedLines;
}
속성
Status |
PhoneLineWatcher instance 현재 상태 가져옵니다. |
메서드
Start() |
디바이스의 전화선 변경 내용에 대한 수신 대기를 시작합니다. |
Stop() |
디바이스의 전화선 변경 내용에 대한 수신 대기를 중지합니다. |
이벤트
EnumerationCompleted |
PhoneLineWatcher instance 디바이스의 모든 전화선 열거를 완료할 때 발생합니다. |
LineAdded |
PhoneLineWatcher instance 디바이스에서 새 전화선을 검색할 때 발생합니다. |
LineRemoved |
PhoneLineWatcher instance 장치에서 전화선이 제거되었음을 감지할 때 발생합니다. |
LineUpdated |
PhoneLineWatcher instance 디바이스에서 전화선이 업데이트되었음을 감지할 때 발생합니다. |
Stopped |
PhoneLineWatcher instance 전화선 변경에 대한 디바이스 모니터링을 중지할 때 발생합니다. |