PhoneLineWatcher Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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. |