PhoneLineWatcher Clase

Definición

Representa una clase que supervisa las líneas telefónicas nuevas, eliminadas o actualizadas del dispositivo y notifica a los agentes de escucha los cambios.

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
Herencia
Object Platform::Object IInspectable PhoneLineWatcher
Atributos

Requisitos de Windows

Familia de dispositivos
Windows Mobile Extension SDK (se introdujo en la versión 10.0.10240.0)
API contract
Windows.ApplicationModel.Calls.CallsPhoneContract (se introdujo en la versión v1.0)
Características de aplicaciones
phoneCallHistory phoneCallHistorySystem

Comentarios

Una línea de teléfono es una línea que un usuario puede usar para recibir llamadas telefónicas entrantes o salientes. Un único dispositivo puede tener varias líneas. Por ejemplo, el sistema crea una línea independiente específicamente para aplicaciones VoIP que permite iniciar una llamada saliente.

El sistema detecta automáticamente las líneas disponibles en el arranque y, a continuación, detecta dinámicamente las líneas a medida que se crean o cambian. La clase PhoneLineWatcher proporciona un mecanismo para que las aplicaciones reciban eventos a medida que se detectan nuevas líneas telefónicas y reaccionan a los cambios.

Esta clase implementa el patrón de monitor.

Puede recuperar una instancia de esta clase llamando a RequestLineWatcher.

En el ejemplo siguiente se muestra cómo enumerar todas las líneas de teléfono actuales.

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

Propiedades

Status

Obtenga el estado actual de la instancia de PhoneLineWatcher .

Métodos

Start()

Comienza a escuchar los cambios en las líneas de teléfono del dispositivo.

Stop()

Detiene la escucha de cambios en las líneas de teléfono del dispositivo.

Eventos

EnumerationCompleted

Se produce cuando la instancia phoneLineWatcher completa una enumeración de todas las líneas de teléfono del dispositivo.

LineAdded

Se produce cuando la instancia de PhoneLineWatcher detecta una nueva línea de teléfono en el dispositivo.

LineRemoved

Se produce cuando la instancia de PhoneLineWatcher detecta que se ha quitado una línea de teléfono del dispositivo.

LineUpdated

Se produce cuando la instancia de PhoneLineWatcher detecta que se ha actualizado una línea de teléfono en el dispositivo.

Stopped

Se produce cuando la instancia phoneLineWatcher deja de supervisar el dispositivo para ver los cambios en las líneas de teléfono.

Se aplica a