PhoneLineWatcher Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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. |