Freigeben über


PhoneLineWatcher Klasse

Definition

Stellt eine Klasse dar, die auf neue/entfernte/aktualisierte Telefonleitungen auf dem Gerät überwacht und Listener über änderungen benachrichtigt.

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
Vererbung
Object Platform::Object IInspectable PhoneLineWatcher
Attribute

Windows-Anforderungen

Gerätefamilie
Windows Mobile Extension SDK (eingeführt in 10.0.10240.0)
API contract
Windows.ApplicationModel.Calls.CallsPhoneContract (eingeführt in v1.0)
App-Funktionen
phoneCallHistory phoneCallHistorySystem

Hinweise

Eine Telefonleitung ist eine Leitung, die ein Benutzer verwenden kann, um eingehende oder ausgehende Telefonanrufe zu empfangen. Ein einzelnes Gerät kann mehrere Zeilen haben. Beispielsweise erstellt das System eine separate Zeile speziell für VoIP-Anwendungen, die das Initiieren eines ausgehenden Anrufs ermöglicht.

Das System erkennt die verfügbaren Zeilen beim Start automatisch und erkennt dann dynamisch Zeilen, wenn Zeilen erstellt oder geändert werden. Die PhoneLineWatcher-Klasse bietet einen Mechanismus für Anwendungen, um Ereignisse zu empfangen, wenn neue Telefonleitungen erkannt werden und auf die Änderungen reagieren.

Diese Klasse implementiert das Watchermuster.

Sie können eine instance dieser Klasse abrufen, indem Sie RequestLineWatcher aufrufen.

Im folgenden Beispiel wird gezeigt, wie Sie alle aktuellen Telefonleitungen auflisten.

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;
}

Eigenschaften

Status

Rufen Sie die aktuelle status der PhoneLineWatcher-instance ab.

Methoden

Start()

Beginnt mit dem Lauschen auf Änderungen an den Telefonleitungen auf dem Gerät.

Stop()

Hört nicht mehr auf Änderungen an den Telefonleitungen auf dem Gerät zu.

Ereignisse

EnumerationCompleted

Tritt auf, wenn die PhoneLineWatcher-instance eine Enumeration aller Telefonleitungen auf dem Gerät abschließt.

LineAdded

Tritt auf, wenn der PhoneLineWatcher-instance eine neue Telefonleitung auf dem Gerät erkennt.

LineRemoved

Tritt auf, wenn der PhoneLineWatcher-instance erkennt, dass eine Telefonleitung vom Gerät entfernt wurde.

LineUpdated

Tritt auf, wenn der PhoneLineWatcher-instance erkennt, dass eine Telefonleitung auf dem Gerät aktualisiert wurde.

Stopped

Tritt auf, wenn die PhoneLineWatcher-instance die Überwachung des Geräts auf Änderungen an den Telefonleitungen beendet.

Gilt für: