Condividi tramite


PhoneLineWatcher Classe

Definizione

Rappresenta una classe che monitora le righe di telefono nuove/rimosse/aggiornate nel dispositivo e notifica ai listener eventuali modifiche.

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
Ereditarietà
Object Platform::Object IInspectable PhoneLineWatcher
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows Mobile Extension SDK (è stato introdotto in 10.0.10240.0)
API contract
Windows.ApplicationModel.Calls.CallsPhoneContract (è stato introdotto in v1.0)
Funzionalità dell'app
phoneCallHistory phoneCallHistorySystem

Commenti

Una linea telefonica è una riga che un utente può usare per ricevere chiamate telefoniche in ingresso o in uscita. Un singolo dispositivo può avere più righe. Ad esempio, il sistema crea una riga separata specificamente per le applicazioni VoIP che consentono di avviare una chiamata in uscita.

Il sistema rileva automaticamente le righe disponibili all'avvio e quindi rileva dinamicamente le righe come righe vengono create o modificate. La classe PhoneLineWatcher fornisce un meccanismo per le applicazioni per ricevere eventi come nuove linee telefoniche vengono rilevate e reagiscono alle modifiche.

Questa classe implementa il modello watcher.

È possibile recuperare un'istanza di questa classe chiamando RequestLineWatcher.

Nell'esempio seguente viene illustrato come enumerare tutte le linee telefoniche correnti.

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

Proprietà

Status

Ottenere lo stato corrente dell'istanza phoneLineWatcher .

Metodi

Start()

Avvia l'ascolto delle modifiche alle linee di telefono nel dispositivo.

Stop()

Arresta l'ascolto delle modifiche alle linee di telefono nel dispositivo.

Eventi

EnumerationCompleted

Si verifica quando l'istanza phoneLineWatcher completa un'enumerazione di tutte le righe di telefono nel dispositivo.

LineAdded

Si verifica quando l'istanza phoneLineWatcher rileva una nuova riga di telefono nel dispositivo.

LineRemoved

Si verifica quando l'istanza phoneLineWatcher rileva che una riga di telefono è stata rimossa dal dispositivo.

LineUpdated

Si verifica quando l'istanza phoneLineWatcher rileva che una riga di telefono è stata aggiornata nel dispositivo.

Stopped

Si verifica quando l'istanza phoneLineWatcher arresta il monitoraggio del dispositivo per le modifiche alle linee telefoniche.

Si applica a