PhoneLineWatcher クラス

定義

デバイス上の新規/削除/更新された電話回線を監視し、変更についてリスナーに通知するクラスを表します。

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
継承
Object Platform::Object IInspectable PhoneLineWatcher
属性

Windows の要件

デバイス ファミリ
Windows Mobile Extension SDK (10.0.10240.0 で導入)
API contract
Windows.ApplicationModel.Calls.CallsPhoneContract (v1.0 で導入)
アプリの機能
phoneCallHistory phoneCallHistorySystem

注釈

電話回線は、ユーザーが着信または発信通話を受信するために使用できる回線です。 1 つのデバイスに複数の行を含めることができます。 たとえば、システムは、送信呼び出しを開始できる VoIP アプリケーション専用の別の行を作成します。

システムは、起動時に使用可能な行を自動的に検出し、行の作成または変更時に行を動的に検出します。 PhoneLineWatcher クラスは、新しい電話回線が検出され、変更に対応する際に、アプリケーションがイベントを受信するためのメカニズムを提供します。

このクラスはウォッチャー パターンを実装します。

このクラスのインスタンスを取得するには、 RequestLineWatcher を呼び出します。

次の例は、現在のすべての電話回線を列挙する方法を示しています。

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 インスタンスの現在の状態を取得します。

メソッド

Start()

デバイス上の電話回線の変更のリッスンを開始します。

Stop()

デバイス上の電話回線の変更のリッスンを停止します。

イベント

EnumerationCompleted

PhoneLineWatcher インスタンスがデバイス上のすべての電話回線の列挙を完了したときに発生します。

LineAdded

PhoneLineWatcher インスタンスがデバイス上の新しい電話回線を検出したときに発生します。

LineRemoved

PhoneLineWatcher インスタンスが、電話回線がデバイスから削除されたことを検出したときに発生します。

LineUpdated

PhoneLineWatcher インスタンスがデバイスで電話回線が更新されたことを検出したときに発生します。

Stopped

PhoneLineWatcher インスタンスが電話回線への変更のデバイスの監視を停止したときに発生します。

適用対象