Compartilhar via


PhoneLineWatcher Classe

Definição

Representa uma classe que monitora linhas telefônicas novas/removidas/atualizadas no dispositivo e notifica os ouvintes sobre quaisquer alterações.

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
Herança
Object Platform::Object IInspectable PhoneLineWatcher
Atributos

Requisitos do Windows

Família de dispositivos
Windows Mobile Extension SDK (introduzida na 10.0.10240.0)
API contract
Windows.ApplicationModel.Calls.CallsPhoneContract (introduzida na v1.0)
Funcionalidades do aplicativo
phoneCallHistory phoneCallHistorySystem

Comentários

Uma linha telefônica é uma linha que um usuário pode usar para receber chamadas telefônicas de entrada ou de saída. Um único dispositivo pode ter várias linhas. Por exemplo, o sistema cria uma linha separada especificamente para aplicativos VoIP que permitem iniciar uma chamada de saída.

O sistema detecta automaticamente as linhas disponíveis na inicialização e, em seguida, detecta dinamicamente as linhas à medida que as linhas são criadas ou alteradas. A classe PhoneLineWatcher fornece um mecanismo para que os aplicativos recebam eventos à medida que novas linhas telefônicas são detectadas e reagem às alterações.

Essa classe implementa o padrão de observador.

Você pode recuperar uma instância dessa classe chamando RequestLineWatcher.

O exemplo a seguir mostra como enumerar em todas as linhas telefônicas atuais.

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

Propriedades

Status

Obtenha o status atual da instância do PhoneLineWatcher.

Métodos

Start()

Começa a escutar alterações nas linhas telefônicas no dispositivo.

Stop()

Interrompe a escuta de alterações nas linhas telefônicas no dispositivo.

Eventos

EnumerationCompleted

Ocorre quando a instância PhoneLineWatcher conclui uma enumeração de todas as linhas telefônicas no dispositivo.

LineAdded

Ocorre quando a instância do PhoneLineWatcher detecta uma nova linha telefônica no dispositivo.

LineRemoved

Ocorre quando a instância do PhoneLineWatcher detecta que uma linha telefônica foi removida do dispositivo.

LineUpdated

Ocorre quando a instância do PhoneLineWatcher detecta que uma linha telefônica foi atualizada no dispositivo.

Stopped

Ocorre quando a instância do PhoneLineWatcher para de monitorar o dispositivo em busca de alterações nas linhas telefônicas.

Aplica-se a